oracle sql使用不同行类型的单个日期列查找最小值和最大值

沙沙87

输入 :

+--------+---------+------+------+------+
| EMP_ID |  DT_1   | ID_1 | ID_2 | ID_3 |
+--------+---------+------+------+------+
|    408 | 4/7/17  |  906 |      |  906 |
|    408 | 4/8/17  |  906 |  799 |  906 |
|    408 | 4/9/17  |  906 |  799 |  906 |
|    408 | 4/10/17 |  906 |  600 |  906 |
|    408 | 4/11/17 |  906 |      |  906 |
|    408 | 4/12/17 |  906 |      |  906 |
|    408 | 4/13/17 |  906 |  799 |  906 |
|    408 | 4/14/17 |  906 |  799 |  906 |
+--------+---------+------+------+------+

我需要输出结果为:

+--------+---------+---------+------+------+------+
| EMP_ID | FROM_DT |  TO_DT  | ID_1 | ID_2 | ID_3 |
+--------+---------+---------+------+------+------+
|    408 | 4/8/17  | 4/9/17  |  906 |  799 |  906 |
|    408 | 4/10/17 | 4/10/17 |  906 |  600 |  906 |
|    408 | 4/13/17 | 4/14/17 |  906 |  799 |  906 |
+--------+---------+---------+------+------+------+

不匹配 (ID1 <> ID2 OR ID1 <> ID3) 应具有准确的起始日期和结束日期,在没有不匹配的情况下留下空白。

戈登·利诺夫

这似乎是间隙和岛屿的变体:

select emp_id, id_1, id_2, id_3, min(dt_1), max(dt_1)
from (select t.*,
             row_number() over (partition by emp_id, id_1, id_2, id_3 order by dt_1) as seqnum
      from t
      where id_2 is not null
     ) t
group by emp_id, id_1, id_2, id_3, (dt_1 - seqnum);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle:重复组中的最小值最大值

来自分类Dev

Oracle:重复组中的最小值最大值

来自分类Dev

将Oracle表记录拆分为批处理,并获得最大值,最小值和该列的最小值

来自分类Dev

SQL Oracle 只返回列值的最大值(值)

来自分类Dev

有没有一种方法可以在oracle sql列中插入数据,其中生成的行基于给定的最小值和最大值

来自分类Dev

如何在Oracle中比较一组行的最大日期和最小日期的列值?

来自分类Dev

Oracle SQL:如何从派生列中选择最大值

来自分类Dev

Oracle SQL:仅返回最大值

来自分类Dev

使用awk查找最小值和最大值?

来自分类Dev

Oracle VIEW - 将 VARCHAR2 转换为 DATE 并找到 DATE 的最小值/最大值

来自分类Dev

在C ++中在矩阵内搜索不同行或列的最小值和最大值的最快方法是什么

来自分类Dev

使用列的最大值从Oracle SQL表中过滤行

来自分类Dev

Oracle SQL 用于比较列值并选择最大值在列 1 中的行

来自分类Dev

在Oracle SQL中为最小值,但不为NULL

来自分类Dev

Oracle SQL 查询以获取记录的最大值,不包括值在两个范围内的记录(小于最大值和大于最大值)

来自分类Dev

在单个递归函数中查找数组的最大值和最小值

来自分类Dev

使用Oracle中的联合的最小值进行更新

来自分类Dev

使用不同的日期值更新Oracle日期列

来自分类Dev

查找函数的最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

awk查找数组的最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

查找矩阵的最大值和最小值

来自分类Dev

查找带有日期的每年的最小值和最大值

来自分类Dev

在单个查询中从SQL的同一列中选择最大值和最小值

来自分类Dev

SQL查询以查找基于日期的本地最大值,最小值

来自分类Dev

更新查询中无autonincrement列的最大值-Oracle

来自分类Dev

最小值和最大值Reactstrap输入类型日期(日历)

来自分类Dev

使用Comparable查找最大值/最小值

Related 相关文章

  1. 1

    Oracle:重复组中的最小值最大值

  2. 2

    Oracle:重复组中的最小值最大值

  3. 3

    将Oracle表记录拆分为批处理,并获得最大值,最小值和该列的最小值

  4. 4

    SQL Oracle 只返回列值的最大值(值)

  5. 5

    有没有一种方法可以在oracle sql列中插入数据,其中生成的行基于给定的最小值和最大值

  6. 6

    如何在Oracle中比较一组行的最大日期和最小日期的列值?

  7. 7

    Oracle SQL:如何从派生列中选择最大值

  8. 8

    Oracle SQL:仅返回最大值

  9. 9

    使用awk查找最小值和最大值?

  10. 10

    Oracle VIEW - 将 VARCHAR2 转换为 DATE 并找到 DATE 的最小值/最大值

  11. 11

    在C ++中在矩阵内搜索不同行或列的最小值和最大值的最快方法是什么

  12. 12

    使用列的最大值从Oracle SQL表中过滤行

  13. 13

    Oracle SQL 用于比较列值并选择最大值在列 1 中的行

  14. 14

    在Oracle SQL中为最小值,但不为NULL

  15. 15

    Oracle SQL 查询以获取记录的最大值,不包括值在两个范围内的记录(小于最大值和大于最大值)

  16. 16

    在单个递归函数中查找数组的最大值和最小值

  17. 17

    使用Oracle中的联合的最小值进行更新

  18. 18

    使用不同的日期值更新Oracle日期列

  19. 19

    查找函数的最小值和最大值

  20. 20

    在.json中查找最大值和最小值

  21. 21

    awk查找数组的最小值和最大值

  22. 22

    在.json中查找最大值和最小值

  23. 23

    查找矩阵的最大值和最小值

  24. 24

    查找带有日期的每年的最小值和最大值

  25. 25

    在单个查询中从SQL的同一列中选择最大值和最小值

  26. 26

    SQL查询以查找基于日期的本地最大值,最小值

  27. 27

    更新查询中无autonincrement列的最大值-Oracle

  28. 28

    最小值和最大值Reactstrap输入类型日期(日历)

  29. 29

    使用Comparable查找最大值/最小值

热门标签

归档