SQL - 如何选择具有相同ID的多行的第一行(或任何唯一行)?

How*_*amp 1 sql ms-access greatest-n-per-group

假设我的查询结果如下:

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
Run Code Online (Sandbox Code Playgroud)

我想只返回每个ID值的单行实例.对我来说无关紧要的是我得到的多行中的哪一行 - 集合中的第一行是好的.

所以可能的结果是:

ID    NAME    Phone
----  ----    -----
1     Bob     111-111-1111
2     Stan    555-555-5555
3     Mike    888-888-8888
Run Code Online (Sandbox Code Playgroud)

Lit*_*les 7

对于SQL Server [edit]和MS Access,您可以这样做

SELECT [ID], [Name], MIN(Phone) as PhoneNumber
FROM PhoneNumbers
GROUP BY [ID], [Name]
Run Code Online (Sandbox Code Playgroud)

这将返回

ID    NAME    Phone
----  ----    -----
1     Bob     111-111-1111
2     Stan    555-555-5555
3     Mike    777-777-7777
Run Code Online (Sandbox Code Playgroud)

您可能想要在表中添加某种唯一键,只是一个想法.