SQL 选取每个分组的某一条数据

背景:有时候我们需要对多条数据按照某个字段分组,然后选取某组中的某一个记录。
例如-
  同一运单 有多条装车记录时 取最大时间的记录
sql 实现
1.Sqlserver:



SELECT
waybill_id, -- 运单号
sigin_time, -- 签到时间
unload_time, -- 卸车时间
loading_time, -- 装车时间
send_time, -- 发车时间
create_time -- 记录创建时间
FROM (SELECT waybill_id,
     sigin_time,
     unload_time,
     loading_time,
     send_time,
     create_time,row_number() OVER (PARTITION BY waybill_id
ORDER BY create_time DESC) row_no 
FROM  tms_tms_loading_details a   )  b
  WHERE row_no=1

2.Mysql:

SELECT
waybill_id, -- 运单号
sigin_time, -- 签到时间
unload_time, -- 卸车时间
loading_time, -- 装车时间
send_time, -- 发车时间
max(create_time) -- 记录创建时间
FROM  tms_tms_loading_details
group by waybill_id


猜你喜欢

转载自blog.csdn.net/beauty0522/article/details/71565938