要在DB2中分组排序并取每组的第一条数据,可以使用以下SQL语句:
WITH ranked_data AS (
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY group_column ORDER BY sort_column) AS rn
FROM your_table
)
SELECT *
FROM ranked_data
WHERE rn = 1;
在这个SQL语句中,首先使用ROW_NUMBER()
窗口函数对每组数据进行排序,并为每行分配一个行号。然后使用PARTITION BY group_column
来指定分组列,ORDER BY sort_column
来指定排序列。最后通过在最外层查询中过滤行号为1的数据,即可取得每组的第一条数据。