0

特定の列に対応する最高の年と最高の四半期を印刷する必要があります。

入力はテーブルにあります:

cityprogram          year          quarter
===========          ====          =======
Abc                  1998             1
Abc                  1999             4
Abc                  1999             4
Abc                  1998             3
xyz                  1998             4
xyz                  1998             1
xyz                  2000             3

印刷する必要があります

Abc                 1999             4
xyz                 2000             3

私は多くの結合、最大条件を試しました、私はそれらの両方で四半期4と4を取得しているようです:(ありがとう

4

1 に答える 1

2

common-table-expression のようなウィンドウ関数を使用します。ROW_NUMBER

WITH CTE AS(
     SELECT [cityprogram], [year], [quarter],
            RN = ROW_NUMBER() OVER (
                   PARTITION BY [cityprogram]
                   ORDER BY [year] DESC, [quarter] DESC)
     FROM dbo.TableName 
)
SELECT [cityprogram], [year], [quarter]
FROM CTE
WHERE RN = 1

デモ

CITYPROGRAM     YEAR    QUARTER
Abc             1999      4
xyz             2000      3

ROW_NUMBER同順位 (最高年と四半期が同じ都市プログラム) がある場合でも、グループごとに 1 つの行のみを返します。すべての最高値を表示したい場合は、に置き換えることができROW_NUMBERますDENSE_RANK

于 2013-06-21T08:18:34.587 に答える