oracle rank() over(partition by order by) rnk 用法

写一个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 模板级别 。

相信这样,大家都能看懂,共勉吧

你可能感兴趣的:(oracle,sql,rank(),by,over(partition)