仅显示组中具有最高值的行

时间:2019-05-23 14:40:53

标签: sql

我有一个包含许多列的表,但是我试图对值进行分组,并且仅显示第二列中值最高的结果。 例如

ColumnA     ColumnB
Jones       1
Jones       1
Jones       1
Jones       2
Jones       2
Jones       3
Jones       3
Jones       3
Smith       1
Smith       1
Smith       2
Smith       2
Smith       2

我已经尝试了分组,Row_Number()Over(分区依据),MAX函数都没有成功

我希望输出仅显示

ColumnA    ColumnB
Jones       3
Jones       3
Jones       3
Smith       2
Smith       2
Smith       2

2 个答案:

答案 0 :(得分:3)

YourLoadingBarWindow

如果要使用窗口功能,请使用 SELECT ColA, ColB FROM YourTable t1 WHERE ColB = (SELECT MAX(colB) FROM YourTable t2 WHERE t1.ColA = t2.ColA)

RANK()

答案 1 :(得分:0)

您可以尝试以下方法:

SELECT t1.ColumnA,
       t1.ColumnB
FROM   MyTable t1
WHERE  NOT EXISTS (SELECT *
                   FROM   MyTable t2
                   WHERE  t1.ColumnA = t2.ColumnA
                     AND  t2.ColumnB > t1.ColumnB);