Column1 Column2 Column3
------- ------- -------
jim 1788 5F
jim 2000 9F
jim 500 9F
ben 190 4H
matt 400 46
matt 20 3G
出力するクエリを実行する必要があります。
Column1 MaxValue PL
------- ------- -------
jim 2000 9F
jim 2000 NULL
ben 190 4H
matt 400 46
matt 400 NULL
Column1 の各値 (例: jim、ben、matt): データを Column1 でグループ化し、グループごとに、column2 に最大値を持つ行を表示します。次に、この方法で見つかった各行について、再度表示しますが、Column1 によるグループ化で複数の行が返され、Column2 の値が前の手順で見つかった最大数よりも小さい場合は、column3 に NULL が表示されます。ben 190 NULL は表示されません。これは、Column1 に ben が 1 回しかないためです。
ヒントや提案があれば、事前に感謝します。
これは私がこれまでに試したことですが、GROUP By句にColumn2とColumn3を含めるように促すエラーが表示されますが、そうすると、上記のように目的の出力に到達しません.
CREATE VIEW VIEWB AS
SELECT DISTINCT t1.Column1,
/* MAX_Value */
(MAX(t1.[Column2])) AS [MAX Value],
/* PL */
(CASE
WHEN t1.[Column2] = MAX(t1.[Column2]) THEN t1.[Column3]
ELSE NULL
END) AS PL
FROM TABLEA AS t1
GROUP BY t1.Column1;