寫一個oracle存儲時碰到一個問題,由於模板定義的級別問題,查出的結果集中有幾乎同樣的結果,就是left join出了不一樣的級別,邏輯定義是若是有1級別,就用1級別中隨便一條,沒有1級別,使用0級別,想了很久,最後求教oracle sql職業高手,用下面一行語句解決了問題sql
rank() over(partition by P.USER_ID, TO_CHAR(P.TRANS_DATE, 'yy-mm-dd'), p.SC_TT_BAK4 order by ST.SMS_LEVEL desc) rnk --當用戶ID,交易時間,商品小類相同時,取短信模板類型降序排列的第一條數據oracle
P.USER_ID 用戶ID,P.TRANS_DATE 交易時間 ,p.SC_TT_BAK4 商品小類,ST.SMS_LEVEL 模板級別 。it
相信這樣,你們都能看懂,共勉吧io