Oracle中取连续三天以上的数据
(2013-01-07 15:21:38)
标签:
格式行号要点日期取连续三天以上的数据 |
分类: Oracle |
需求:用sql实现取连续三天以上的数据
实现:
select begin_dt
要点说明:
row_number() over(order by
begin_dt)
to_date(begin_dt, 'yyyy-mm-dd') - row_number() over(order by begin_dt) ch 用日期减去行号,得到一列日期格式的值,如果日期是连续的,得到的日期值将是一样的;
count(*)
在Excel中模拟一个取连续值的算法:
| 2012/1/1 | 1 | 2011/12/31 |
| 2012/1/2 | 2 | 2011/12/31 |
| 2012/1/3 | 3 | 2011/12/31 |
| 2012/1/4 | 4 | 2011/12/31 |
| 2012/1/5 | 5 | 2011/12/31 |
| 2012/1/6 | 6 | 2011/12/31 |
| 2012/1/8 | 7 | 2012/1/1 |
| 2012/1/9 | 8 | 2012/1/1 |
| 2012/1/10 | 9 | 2012/1/1 |
| 2012/1/11 | 10 | 2012/1/1 |
| 2012/1/12 | 11 | 2012/1/1 |
| 2012/1/13 | 12 | 2012/1/1 |
| 2012/1/14 | 13 | 2012/1/1 |
| 2012/1/15 | 14 | 2012/1/1 |
| 2012/1/16 | 15 | 2012/1/1 |
| 2012/1/18 | 16 | 2012/1/2 |
| 2012/1/21 | 17 | 2012/1/4 |
| 2012/1/22 | 18 | 2012/1/4 |
| 2012/1/23 | 19 | 2012/1/4 |
| 2012/1/24 | 20 | 2012/1/4 |
| 2012/1/25 | 21 | 2012/1/4 |
| 2012/1/26 | 22 | 2012/1/4 |

加载中…