2014-06-21 2 views
1

У меня есть таблица вроде этого:Получить Наибольшее значение из элементов с одинаковыми идентификаторами

ID  Severity WorkItemSK 
23636 3-Minor  695119 
23636 3-Minor  697309 
23647 2-Major  695081 
23647 2-Major  694967 

здесь у меня есть несколько WorkItems, которые разделяют один и тот же идентификатор. Как я могу получить уникальные идентификаторы, имеющие самый высокий WorkItem?

Так он хотел бы это:

ID  Severity WorkItemSK 
23636 3-Minor  697309 
23647 2-Major  695081 

Помочь нуб :) Разум дает какой SQL команды ключ (опять же я нуб) я должен использовать? Или пример запроса?

Спасибо заранее!

+0

Возможный дубликат [Как я могу выбрать строки с MAX (значение столбца), DISTINCT другим столбцом в SQL?] (Http://stackoverflow.com/questions/612231/how-can-i-select-rows- с-maxcolumn-value-different-by-another-column-in-sql) – FuzzyTree

ответ

1

Если предположить, что Severity может меняться в зависимости от WorkItemSK, вы будете хотеть использовать следующий запрос:

Select T.ID, T.Severity, T.WorkItemSK 
From Table T 
Join 
(
    Select ID, Max(WorkItemSK) As WorkItemSK 
    From Table 
    Group By ID 
) D On T.WorkItemSK = D.WorkItemSK And T.ID = D.ID 

Последнее Join состояние T.ID = D.ID может или может не понадобиться, в зависимости от того, может ли WorkItemSK отображаться несколько раз в вашей таблице.

В противном случае, вы можете просто использовать это:

Select ID, Severity, Max(WorkItemSK) As WorkItemSK 
From Table 
Group by ID, Severity 

Но если у вас есть различные Severity значения за ID, вы увидите повторяющиеся ID с.

+0

Спасибо! Работает правильно! – GrimSmiler

0

Использование выбрать с GROUP BY: SELECT id,MAX(WorkItemSK) FROM table GROUP BY id;

Смежные вопросы