oracle 查询语句咨询

alick723 2018-02-28 03:45:16
目前有客户开户信息表,表结构如下:
客户账号 客户姓名 开户日期
10321165 张一 20000123
10330256 张二 20000125
… … …
10340025 张三 20011201
10340252 张四 20011202
10340252 张五 20011203
… … …
10350625 张六 20171222
10350626 张七 20171223
… … …


以上表:客户账号唯一,开户日期不唯一,现在比如取出:张三的开户日期是:20011201,求此表中自20011201开始往后到20171231之间有多少个不同的日期天数(因为表中有的自然日是没有开户记录的)。
要的结果结构如下:
客户账号 、客户姓名、开户日期、在其开户日期开始往后表中不同日期天数
...全文
1152 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36611253 2018-03-30
  • 打赏
  • 举报
回复
select a.bank_no, a.user_name, min(a.kh_date) as kh_date, count(distinct(case when a.rn>1 then date else '' end) as gs_date from (select bank_no, user_name, min(to_char(date,'yyyy-mm-dd')) over(partition by bank_no) as kh_date, row_number() over(partition by bank_no order by date) rn from table)a group by a.bank_no, a.user_name
  • 打赏
  • 举报
回复
需要 客户账号唯一分组不?
jdsnhan 2018-03-01
  • 打赏
  • 举报
回复
从字面的需求上看, count(distinct ) 即可
xphDeV 2018-02-28
  • 打赏
  • 举报
回复
有开户记录与没有开户记录怎么区分的
liu志坚 2018-02-28
  • 打赏
  • 举报
回复
客户账号 fid 客户姓名 fname 开户日期 fdate select t.fid, t.fname, to_char(t.fdate, 'YYYYMMDD') as fd, (select count(distinct to_char(a.fdate, 'YYYYMMDD')) from table1 a where a.fdate > t.fdate) as ts from table1 t order by t.fdate; 这样就可以了。 给你参考了~~~

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧