写一个oracle存储时碰到一个问题,因为模板定义的级别问题,查出的结果集中有几乎一样的结果,就是left join出了不同的级别,逻辑定义是如果有1级别,就用1级别中随便一条,没有1级别,使用0级别,想了好久,最后求教oracle 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,交易时间,商品小类相同时,取短信模板类型降序排列的第一条数据
P.USER_ID 用户ID,P.TRANS_DATE 交易时间 ,p.SC_TT_BAK4 商品小类,ST.SMS_LEVEL 模板级别 。
相信这样,大家都能看懂,共勉吧