#此函数说明
ROW_NUMBER() OVER(PARTITION BY 分组列 order by 排序列)
分组列:为分组字段
排序列:为分组后的排序列
函数适用于:分组排序,去重(指的是只取一个值)排序。
#此案例
前:
当时这条sql想做的是折线图渲染遭遇到的问题,然后想着用DISTINCT函数进行去重,DISTINCT
会考虑查询列表中的所有列,因此在使用 TO_CHAR(TRUNC(BDSJ), 'yyyy-mm-dd') AS BDSJ
进行日期格式化时,会导致去重不起作用,因为格式化后的日期可能相同,但 ZHDF
不同。
后:
为了解决这个问题,找到了这个`ROW_NUMBER()`窗口函数,将BDSJ进行分组然后BDSJ和ZHDF进行倒序排序,排序之后只取每个BDSJ的第一条数据,最终就是想要的结果。