复杂SQL查询

1、sql server取分组后的每组的第一条数据

select * from
(
select F_Id,F_EnCode,F_FullName,F_LotNum,ROW_NUMBER() OVER(PARTITION BY F_EnCode,F_FullName ORDER By F_CreatorTime Desc) AS Row_Sort,F_CreatorTime
from Mst_Test 
) A where A.Row_Sort=1

PARTITION BY 后面接分组凭借字段(通过什么来分组)

ORDER By 后面接排序字段 (根据什么排序)

ROW_NUMBER() 每条数据的行号 OVER 行号根据什么得到

img

原文链接:https://blog.csdn.net/yc147258/article/details/103504262

2、group by分组后,拼接同一分组的某个字段

select TRIP_ID ,ROUTE_ID ,STOP_ID,GROUP_CONCAT(STOP_SEQUENCE ORDER BY STOP_SEQUENCE ASC SEPARATOR '/') STOP_SEQUENCE from TRIP_DETAIL 
 GROUP BY STOP_ID ,TRIP_ID ,ROUTE_ID

group_concat :返回带有来自一个组的连接的非NULL值的字符串结果。组内字符串连接。

原文地址:https://www.cnblogs.com/xiaolaodi1999/p/14980040.html