Oracle 查询连续日期
在线数据
1 | create table test |
生成表如下:
D | VCODE | QDATE |
---|---|---|
1 | A001 | 2019-05-01T00:00:00Z |
10 | B001 | 2019-05-08T00:00:00Z |
2 | A001 | 2019-05-02T00:00:00Z |
3 | A001 | 2019-05-03T00:00:00Z |
4 | A001 | 2019-05-05T00:00:00Z |
5 | A001 | 2019-05-07T00:00:00Z |
6 | A001 | 2019-05-09T00:00:00Z |
7 | A001 | 2019-05-10T00:00:00Z |
8 | B001 | 2019-05-06T00:00:00Z |
9 | B001 | 2019-05-07T00:00:00Z |
按照名字vcode分组,按照日期qdate排序
1 | select |
结果如下:
ID | VCODE | QDATE | RN |
---|---|---|---|
1 | A001 | 2019-05-01T00:00:00Z | 1 |
2 | A001 | 2019-05-02T00:00:00Z | 2 |
3 | A001 | 2019-05-03T00:00:00Z | 3 |
4 | A001 | 2019-05-05T00:00:00Z | 4 |
5 | A001 | 2019-05-07T00:00:00Z | 5 |
6 | A001 | 2019-05-09T00:00:00Z | 6 |
7 | A001 | 2019-05-10T00:00:00Z | 7 |
8 | B001 | 2019-05-06T00:00:00Z | 1 |
9 | B001 | 2019-05-07T00:00:00Z | 2 |
10 | B001 | 2019-05-08T00:00:00Z | 3 |
提取日期减去行号,得到的结果rn连续相同时即为日期连续组
1 | select |
结果如下:
ID | VCODE | QDATE | RN |
---|---|---|---|
1 | A001 | 2019-05-01T00:00:00Z | 2019-04-30T00:00:00Z |
2 | A001 | 2019-05-02T00:00:00Z | 2019-04-30T00:00:00Z |
3 | A001 | 2019-05-03T00:00:00Z | 2019-04-30T00:00:00Z |
4 | A001 | 2019-05-05T00:00:00Z | 2019-05-01T00:00:00Z |
5 | A001 | 2019-05-07T00:00:00Z | 2019-05-02T00:00:00Z |
6 | A001 | 2019-05-09T00:00:00Z | 2019-05-03T00:00:00Z |
7 | A001 | 2019-05-10T00:00:00Z | 2019-05-03T00:00:00Z |
8 | B001 | 2019-05-06T00:00:00Z | 2019-05-05T00:00:00Z |
9 | B001 | 2019-05-07T00:00:00Z | 2019-05-05T00:00:00Z |
10 | B001 | 2019-05-08T00:00:00Z | 2019-05-05T00:00:00Z |
根据vcode和rn分组,得到的count即为连续的天数
1 | select vcode, rn, count(*) |
结果如下:
VCODE | RN | COUNT(*) |
---|---|---|
B001 | 2019-05-05T00:00:00Z | 3 |
A001 | 2019-05-01T00:00:00Z | 1 |
A001 | 2019-05-02T00:00:00Z | 1 |
A001 | 2019-05-03T00:00:00Z | 2 |
A001 | 2019-04-30T00:00:00Z | 3 |
通过having即可筛选出连续天数>=2的vcode
1 | select vcode, rn, count(*) |
结果如下:
VCODE | RN | COUNT(*) |
---|---|---|
B001 | 2019-05-05T00:00:00Z | 3 |
A001 | 2019-05-03T00:00:00Z | 2 |
A001 | 2019-04-30T00:00:00Z | 3 |
- 本文标题:Oracle 查询连续日期
- 本文作者:valten
- 创建时间:2021-03-31 12:35:43
- 本文链接:https://valtenhyl.github.io/数据库/Oracle/oracle-days/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论