我有一个包含许多列的表,但是我试图对值进行分组,并且仅显示第二列中值最高的结果。 例如
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
答案 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);