-4

SQL Server 2008 では、次の表で各人物の最初の出現箇所を選択する必要があります。

ID           WeeklyAvg    MonthlyAvg
1            8            0
1            7            3
2            9            1
2            6            4
2            6            4
.......................
....................

出力は次のようになります。

1       8       0
2       9       1

どうすればこれを達成できますか?
SQLサーバーが制限しているという理由だけで、すべての「個別の」列をgroup by句に入れることを避けることができれば、さらに良いでしょう。
助けに感謝します。

4

1 に答える 1

1

ROW_NUMBER「最初の」行を取得するために使用できます。

SELECT ID, WeeklyAvg, MonthlyAvg
FROM
(
SELECT ID, WeeklyAvg, MonthlyAvg,
     ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) RowNum
     FROM {table}
) A
WHERE RowNum = 1

特定の順序を指定しない限り、「最初の」行は任意になることに注意してください。

于 2013-11-12T17:38:57.960 に答える