当前位置:首页 > 数据库 > Oracle管理

oracle sql文可不可以实现下面的要求

优良自学吧提供oracle sql文可不可以实现下面的要求,oracle sql文能否实现下面的要求?user_cd(pk)  user_type    job_date 000001        

oracle sql文能否实现下面的要求?
user_cd(pk)  user_type    job_date
000001         001        2015/05/01
000001         001        2015/05/02
000001         001        2015/05/03
000001         002        2015/05/04
000001         002        2015/05/05
000001         002        2015/05/06
000002         001        2015/05/01
000002         001        2015/05/02
000002         001        2015/05/03
000002         002        2015/05/04
000002         002        2015/05/05
000002         002        2015/05/06
000002         003        2015/05/07
000002         003        2015/05/08
000002         003        2015/05/09
000002         001        2015/05/10
000002         001        2015/05/11
000002         001        2015/05/12

用sql能检索出这种数据么?

000001       001      2015/05/01~2015/05/03
000001       002      2015/05/04~2015/05/06
000002       001      2015/05/01~2015/05/03
000002       002      2015/05/04~2015/05/06
000002       003      2015/05/07~2015/05/09
000002       001      2015/05/10~2015/05/12

或者只能在检索结果中遍历才能得到?
------解决思路----------------------
WITH t1(user_cd,user_type,job_date,rn1,rn2) AS (
    SELECT user_cd,user_type,job_date,
           ROW_NUMBER() OVER(PARTITION BY user_cd ORDER BY job_date) rn1,
           ROW_NUMBER() OVER(PARTITION BY user_cd ORDER BY user_type,job_date) rn2
      FROM table1
)
    SELECT user_cd,
           user_type,
           MIN(job_date) 
------解决思路----------------------
 '~' 
------解决思路----------------------
 MAX(job_date),
           rn1-rn2
      FROM t1
   GROUP BY user_cd, user_type,rn1-rn2

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢

最近更新