我有一个表格,格式如下:
User | Entity | ID
123 AB 1
123 AB 2
543 BC 3
098 CB 4
543 BC 5
543 ZG 6
等...
我想得到的结果集只返回用户/实体对及其最大ID的ID,所以这个结果例如:
User | Entity | ID
123 AB 2
098 CB 4
543 BC 5
543 ZG 6
有没有办法在SQL中执行此操作?
答案 0 :(得分:4)
尝试将group by
与max
功能
select user, Entity, max(id) as id
from table
group by user, Entity
答案 1 :(得分:0)
您还可以使用CTE
和Partition By
像这样:
;WITH CTE as
(
SELECT
Users,Entity,
ROW_NUMBER() OVER(PARTITION BY Entity ORDER BY ID DESC) AS Row,
Id
FROM Item
)
SELECT Users, Entity, Id From CTE Where Row = 1
请注意,我们使用Order By ID DESC
因为我们需要最高 ID 。如果您想要最小的 ID ,则可以删除DESC
。
SQLFiddle:http://sqlfiddle.com/#!3/1dcb9/4