复杂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值的字符串结果。组内字符串连接。

posted @ 2021-07-07 09:30  小老弟1999  阅读(148)  评论(0编辑  收藏  举报