SQL - Как выбрать первую строку (или любую уникальную строку) из нескольких строк с одинаковым идентификатором?

Допустим, у меня есть результат запроса, который выглядит следующим образом:

ID    NAME    Phone
----  ----    -----
1     Bob     111-111-1111
1     Bob     222-222-2222
1     Bob     333-333-3333
2     Stan    555-555-5555
3     Mike    888-888-8888
3     Mike    777-777-7777

Я хочу вернуть только один экземпляр строки каждого значения идентификатора. Для меня не имеет значения, какую из нескольких строк я получу - первая в наборе в порядке.

Таким образом, возможный результат будет:

ID    NAME    Phone
----  ----    -----
1     Bob     111-111-1111
2     Stan    555-555-5555
3     Mike    888-888-8888

2 ответа

Решение

Для SQL Server [править] и MS Access вы можете сделать

SELECT [ID], [Name], MIN(Phone) as PhoneNumber
FROM PhoneNumbers
GROUP BY [ID], [Name]

Это вернется

ID    NAME    Phone
----  ----    -----
1     Bob     111-111-1111
2     Stan    555-555-5555
3     Mike    777-777-7777

Возможно, вы захотите добавить какой-то уникальный ключ к таблице, просто мысль.

Возможно, мы также поможем вам в этом направлении, если вы предоставите нам инструкцию T-SQL, которая дала вам первые полученные результаты, с некоторой информацией о том, как это можно переписать, чтобы получить желаемые результаты.

Другие вопросы по тегам