在字段sql server中选择top(1)出现某个值

时间:2014-11-27 11:50:28

标签: sql-server tsql

假设一个包含2列的表。一个是char(1)并包含可以重复的字母(不是唯一的)。另一列是int列。什么是正确的sql脚本,只选择每个字母一次,特别是int列为max的行(每个字母组中的最大int),例如,如果我有3行字母'A',对应的整数1 ,2,3然后只选择(A,3)行。当然,我的实际情况与此不同,但为了清晰起见,我简化了示例。

谢谢

2 个答案:

答案 0 :(得分:0)

SELECT MAX(intcol),charcol 
FROM tab
GROUP BY charcol

应该这样做

处理评论中提到的情景

WITH cte AS
(
    SELECT MAX(intcol) AS maxintcol,charcol 
    FROM tab
    GROUP BY charcol
)
SELECT t.*
FROM tab t JOIN cte c on c.maxintcol=t.intcol  AND c.charcol = t.charcol

答案 1 :(得分:0)

SELECT MAX(ID) As [MaxId], Letter
FROM Alphabets
GROUP BY Letter