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 分组返回多于 1 行并且 Column2 中的值小于上一步中找到的最大数量,它会再次显示它,但在 column3 中为 NULL。ben 190 NULL 不显示,因为我们只在 Column1 上使用过一次。
提前感谢您提供任何提示或建议。
这是我迄今为止尝试过的,但我收到一个错误提示我在 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;