在1列中重复时,获得具有最高值的行

时间:2019-04-23 18:28:12

标签: sql sql-server

查询将产生类似于以下示例的内容:

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时具有一些文本值 如何获得正确的结果?因此,当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

谢谢!

1 个答案:

答案 0 :(得分:1)

签出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