How to implement getting the first data in each group in DB2 with grouping and sorting? DB2でグループごとにソートして最初のデータを取得する方法は?
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のデータをフィルタリングすることで、各グループの最初のデータを取得できます。