您的位置:首页 > 数据库

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

2017-05-10 18:26 302 查看
背景:有时候我们需要对多条数据按照某个字段分组,然后选取某组中的某一个记录。
例如-
  同一运单 有多条装车记录时 取最大时间的记录
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: