使用oracle的时间比较短,有很多东西不太熟悉,遇到好用的东西,正好就记录一下:
需求时根据四个字段分组,查询日期最早的数据,然后再分组
SELECT
t.1,
t.2,
t.3,t.NUM,
row_number() OVER(PARTITION BY t.1,t.2,3,t.4 ORDER BY t.NUM desc) as row_flg
FROM test t
注:PARTITION BY 在这里是分组,具体可以查询一下用法
取查询row_flg结果为1的数据
SELECT
*
(SELECT
t.1,
t.2,
t.3,t.NUM,
row_number() OVER(PARTITION BY t.1,t.2,3,t.4 ORDER BY t.NUM desc) as row_flg
FROM test t
) view_new WHERE view_new.row_flg = '1'
最终取到需要的结果,然后进行操作。