2015-07-14 6 views
2

Я получил эту таблицу в MS SQL Server Management Studio,SQL, получить максимальный идентификатор столбца

+------+-----------+-------- 
| id | client id | bla bla blaaaa 
+------+-----------+-------- 
| 1 | 1  | ....... 
| 2 | 2  | ....... 
| 3 | 3  | ....... 
| 4 | 8  | ....... 
| 5 | 9  | ....... 
| 6 | 15  | ....... 
| 7 | 1  | ....... 
| 8 | 16  | ....... 
| 9 | 2  | ....... 
| 10 | 9  | ....... 
| 12 | 12  | ....... 
+------+-----------+-------- 

Мне нужно, чтобы получить уникальный [идентификатор клиента] с максимальным значением [ID], как этот

+------+-----------+-------- 
| id | client id | bla bla blaaaa 
+------+-----------+-------- 
| 3 | 3  | ....... 
| 4 | 8  | ....... 
| 6 | 15  | ....... 
| 7 | 1  | ....... 
| 8 | 16  | ....... 
| 9 | 2  | ....... 
| 10 | 9  | ....... 
| 12 | 12  | ....... 
+------+-----------+-------- 

Я пробовал этот код, но он не работает. Может кто-нибудь мне помочь?

SELECT * 
FROM table AS one 
INNER JOIN table AS two 
    ON one.[client id] = two.[client id] 
    WHERE one.[id] > two.[id] 

ответ

4
SELECT max(id), client_id, blah_blah 
FROM my_table 
GROUP BY client_id, blah_blah 
+0

Мне нравится бла, _blah: D – Shehary

+0

Спасибо большое !!! –

0

Я бы для ROW_NUMBER() решения:

SELECT * 
FROM (
    SELECT ROW_NUMBER() OVER(PARTITION BY [client id] ORDER BY [id] DESC) AS RN, * 
    FROM table AS one 
    ) AS T 
WHERE T.RN = 1; 
Смежные вопросы