1

次の形式のテーブルがあります。

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でこれを行う方法はありますか?

4

2 に答える 2

4

関数で使っgroup byてみるmax

select user, Entity, max(id) as id
from table 
group by user, Entity
于 2013-07-26T13:43:10.267 に答える
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が必要なため、使用したことに注意してください。DESC最小のIDが必要な場合は削除できます。

SQLFiddle: http://sqlfiddle.com/#!3/1dcb9/4

于 2013-07-26T13:58:41.240 に答える