SQL:重复ID时选择一行

时间:2012-09-26 16:49:11

标签: sql

我有下表:

FKID1   FKID2   A    
3   40297    3 
3   40297    5 
3   40325    9 
3   40325    8 
3   40325    1 
3   40348    1  
3   40391    2 
3   40392    7 
3   40501    5 
3   40501    4 

我需要一个查询来得到下表:

FKID1   FKID2   A    
3   40297    5 
3   40325    9  
3   40348    1  
3   40391    2 
3   40392    7 
3   40501    5

因此它只从重复项中选择1个FKID2,并选择与其关联的max(A)的那个。

我无法做到,所以非常感谢您的帮助

2 个答案:

答案 0 :(得分:1)

select FKID1, FKID2, max(a)
from yourTable
group by FKID1, FKID2

您需要分组依据并应用聚合函数。 阅读有关此here的更多信息。此外,有关Internet上此条款的更多教程

答案 1 :(得分:1)

请记住,当您使用AGGREGATE FUNCTIONS时,请不要忘记添加GROUP BY子句,否则您将只有一个值。试试这个,

SELECT FKID1, FKID2, MAX(A) maxValue
FROM tableName
GROUP BY FKID1, FKID2

如果您不希望在结果上显示FKID1

SELECT FKID2, MAX(A) maxValue
FROM tableName
GROUP BY  FKID2