目前有客戶開戶資訊表,表結構如下:
客戶賬號 客戶姓名 開戶日期
10321165 張一 20000123
10330256 張二 20000125
… … …
10340025 張三 20011201
10340252 張四 20011202
10340252 張五 20011203
… … …
10350625 張六 20171222
10350626 張七 20171223
… … …
以上表:客戶賬號唯一,開戶日期不唯一,現在比如取出:張三的開戶日期是:20011201,求此表中自20011201開始往后到20171231之間有多少個不同的日期天數(因為表中有的自然日是沒有開戶記錄的)。
要的結果結構如下:
客戶賬號 、客戶姓名、開戶日期、在其開戶日期開始往后表中不同日期天數
uj5u.com熱心網友回復:
客戶賬號 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;
這樣就可以了。
給你參考了~~~
uj5u.com熱心網友回復:
有開戶記錄與沒有開戶記錄怎么區分的uj5u.com熱心網友回復:
從字面的需求上看, count(distinct ) 即可uj5u.com熱心網友回復:
需要 客戶賬號唯一分組不?uj5u.com熱心網友回復:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/69652.html
標籤:開發
上一篇:Oracle批量update問題,一直是initializing狀態
下一篇:oracle, 查詢陳述句
