pgsql:获取分组中最大或最小的一条数据 | 您所在的位置:网站首页 › pgsql取第一条数据不查询 › pgsql:获取分组中最大或最小的一条数据 |
步骤1:查询并排序各分组的记录
sql的查询语句如下: SELECT tb.curr_read,tb.arch_id, ROW_NUMBER() OVER(PARTITION by arch_id ORDER BY year_month desc)idx FROM t_month_cdate tb WHERE tb.year_month BETWEEN '2021-01' and '2021-05' and arch_id in('00004','00005','00006')查询结果: 说明: 1.ROW_NUMBER:该函数可以对分组进行编号 2.PARTITION by :对arch_id 这个字段进行分组 3.ORDER BY:在分组区间内按year_month 进行倒序 步骤二:筛选出最大记录在原查询结果中筛选出idx第一条,即为最大记录。 以上调整后的sql语句如下: SELECT * FROM ( SELECT tb.curr_read,tb.arch_id,ROW_NUMBER() OVER(PARTITION by arch_id ORDER BY year_month desc)idx FROM t_month_cdate tb WHERE tb.year_month BETWEEN '2021-01' and '2021-05' and arch_id in('00004','00005','00006') )tm WHERE idx=1输出结果: 以上完毕。
|
CopyRight 2018-2019 实验室设备网 版权所有 |