首页 > 解决方案 > 当在 1 列中重复时,获取具有最高值的行

问题描述

查询结果类似于以下示例:

col1 col2
A    0
B    0
B    1
C    0
D    1

现在我不想在 col1 中重复。但是当 col1 有重复时,它应该给出 col2 = 1 (或最高值)的行,而不给出 col2 = 0 的行。所以结果将是:

col1 col2
A    0
B    1
C    0
D    1

这个查询应该是什么样子?

编辑:

max 有效,但是当 col2 = 1 时有第 thirth 列,带有一些文本值如何获得右侧的结果?所以当col1中有重复时,则获取col2 = 1的行

col1 col2 col3                      col1 col2 col3
   A    0                              A    0   
   B    0                              B    1   XYZ   
   B    1   XYZ            -->         C    0   
   C    0                              D    1   YXA
   D    1   YXA

谢谢!

标签: sqlsql-server

解决方案


查看 MAX() 函数:https ://docs.microsoft.com/en-us/sql/t-sql/functions/max-transact-sql?view=sql-server-2017

SELECT col1,MAX(col2) 
FROM [yourTable] 
GROUP BY col1

推荐阅读