mysql分组排序取第一条数据

需求:

mysql 根据某一个字段分组,然后组内排序,最后每组取排序后的第一条数据

1. 先使用(分组字段+排序字段)排序

相当于实现了分组和排序,只是没有根据分组字段聚合,此时每个分组的第一条数据就是我们需要的目标数据。

2. 再按分组字段分组,取第一条即可

实例如下:

with 
t_picture as(
 SELECT npi_product_id,is_default_one,update_time, uri FROM datahub_product_attachment where type=1 ORDER BY npi_product_id,is_default_one DESC,update_time DESC
)
SELECT npi_product_id, (ARRAY_AGG(uri))[1] as uri FROM t_picture  group by npi_product_id

必须在分组前排序,分组后排序是对分组字段和聚合字段排序。

你可能感兴趣的:(mysql,mysql,数据库,database)