SQL:从表中选择一行,并在其中包含包含该列的下一个值的其他列

胡约翰

假设我在Oracle数据库中有一个表“ TABLE_A”:

=======================
| id | key | date     |
=======================
| 0  | 1   | 1.1.2020 |
| 1  | 1   | 1.1.2021 |
=======================

我想得到这样的结果:

===================================
| id | key | date     | next_date |
===================================
| 0  | 1   | 1.1.2020 | 1.1.2021  |
===================================

请注意,我希望在<ID>特定日期<DATE>具有特定键的行与包含相同键的数据库中包含下一个日期的另一列。但是,如果没有其他日期,则仍应给我相同的行,但next_date为空。

有没有比这更简单/更好/更易读的版本?

SELECT a.*, next_date
FROM TABLE_A a,
     (SELECT key, date as next_date
      FROM TABLE_A
      WHERE key = <ID>
        AND date > <DATE>
        AND ROWNUM <= 1
      ORDER BY next_date asc) a2
WHERE key = <ID>
  AND date = <DATE>
  AND a2.key(+) = a.key
戈登·利诺夫

尽管lead()您正在描述,但我认为相关子查询可能是最快的:

select t.*,
       (select min(t2.date)
        from t t2
        where t2.key = t.key and t2.date > t.date
       ) as next_date
from t;

(您可以为特定键添加过滤器。)

特别是,这可以非常有效地使用上的索引(key, date)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL:从表中选择一行,并在其中包含包含该列的下一个值的其他列

来自分类Dev

SQL:在某些列中选择具有值的行,并且该值不包含在另一个表中

来自分类Dev

从另一个表中选择多个列,其中字段包含数组

来自分类Dev

如何从基于其他行和列值的列中选择一个值?

来自分类Dev

在data.frame中选择行,其中某一列的值包含一组前缀中的一个

来自分类Dev

如何从 SQL 中的表中选择其中一列中的元素仅包含另一列的一个特征,而另一列本身又包含两个特征?

来自分类Dev

如何在每列中选择下一个非空值。T-SQL

来自分类Dev

SQL:显示在另一个表中不存在的元素,或者存在但在其中一个列中没有包含特定值的行的元素

来自分类Dev

如何从表中选择特定行,其中一列作为其他行的值之和?

来自分类Dev

如何加入 SQL Server 中的多个列并在一个表中包含其他表中不存在的列?

来自分类Dev

确定更大的下一个值,然后乘以同一行的D列

来自分类Dev

从同一表的行中选择值和下一个最高值

来自分类Dev

从同一表的行中选择值和下一个最高值

来自分类Dev

SQL在一行中选择第一个值,然后将该值插入另一列

来自分类Dev

SQL在一行中选择第一个值,然后将该值插入另一列

来自分类Dev

SQL查询,如何选择下一个值为当前值+1的间隔,标识下一个间隔并保持其他所有不变?

来自分类Dev

如何从Pandas数据框中检索一个记录序列,该记录序列在其中一列的末尾包含某个值?

来自分类Dev

SQL:从不包含来自另一个表的值的表中选择数据

来自分类Dev

How to say如果“值”不包括在此数据框列中(从“值”列表中),无论如何都要为其添加一行,并在其他列中添加一个NA

来自分类Dev

选择表的第一行(该表的一列包含int值,这些int值的总和小于输入的值

来自分类Dev

比较SQL中的其他2个列时,从列中选择一个ID

来自分类Dev

从该用户未登录且不在其他表行中的表中选择一个用户

来自分类Dev

UPDATE列,其中不包含PL / SQL的oracle中每一行的最大值

来自分类Dev

Oracle SQL选择一个表列的最终值,就像其他表列中的值一样,该值包含负1位数字

来自分类Dev

从一列中选择一个值并获取与 php 中选定值相关的其他值

来自分类Dev

jQuery:查找包含“ Up”的td的索引,然后使用该索引在下一个tr中选择相同的td?

来自分类Dev

如何在文件的每一行中搜索单词并在python中打印该单词的下一个值

来自分类Dev

从表中选择,其中列从laravel中的另一个表中选择

来自分类Dev

从表中选择,其中列从laravel中的另一个表中选择

Related 相关文章

  1. 1

    SQL:从表中选择一行,并在其中包含包含该列的下一个值的其他列

  2. 2

    SQL:在某些列中选择具有值的行,并且该值不包含在另一个表中

  3. 3

    从另一个表中选择多个列,其中字段包含数组

  4. 4

    如何从基于其他行和列值的列中选择一个值?

  5. 5

    在data.frame中选择行,其中某一列的值包含一组前缀中的一个

  6. 6

    如何从 SQL 中的表中选择其中一列中的元素仅包含另一列的一个特征,而另一列本身又包含两个特征?

  7. 7

    如何在每列中选择下一个非空值。T-SQL

  8. 8

    SQL:显示在另一个表中不存在的元素,或者存在但在其中一个列中没有包含特定值的行的元素

  9. 9

    如何从表中选择特定行,其中一列作为其他行的值之和?

  10. 10

    如何加入 SQL Server 中的多个列并在一个表中包含其他表中不存在的列?

  11. 11

    确定更大的下一个值,然后乘以同一行的D列

  12. 12

    从同一表的行中选择值和下一个最高值

  13. 13

    从同一表的行中选择值和下一个最高值

  14. 14

    SQL在一行中选择第一个值,然后将该值插入另一列

  15. 15

    SQL在一行中选择第一个值,然后将该值插入另一列

  16. 16

    SQL查询,如何选择下一个值为当前值+1的间隔,标识下一个间隔并保持其他所有不变?

  17. 17

    如何从Pandas数据框中检索一个记录序列,该记录序列在其中一列的末尾包含某个值?

  18. 18

    SQL:从不包含来自另一个表的值的表中选择数据

  19. 19

    How to say如果“值”不包括在此数据框列中(从“值”列表中),无论如何都要为其添加一行,并在其他列中添加一个NA

  20. 20

    选择表的第一行(该表的一列包含int值,这些int值的总和小于输入的值

  21. 21

    比较SQL中的其他2个列时,从列中选择一个ID

  22. 22

    从该用户未登录且不在其他表行中的表中选择一个用户

  23. 23

    UPDATE列,其中不包含PL / SQL的oracle中每一行的最大值

  24. 24

    Oracle SQL选择一个表列的最终值,就像其他表列中的值一样,该值包含负1位数字

  25. 25

    从一列中选择一个值并获取与 php 中选定值相关的其他值

  26. 26

    jQuery:查找包含“ Up”的td的索引,然后使用该索引在下一个tr中选择相同的td?

  27. 27

    如何在文件的每一行中搜索单词并在python中打印该单词的下一个值

  28. 28

    从表中选择,其中列从laravel中的另一个表中选择

  29. 29

    从表中选择,其中列从laravel中的另一个表中选择

热门标签

归档