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

时间:2010-07-27 02:13:56

标签: 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

我想只返回每个ID值的单行实例。对我来说,无论我得到多行中的哪一行 - 集合中的第一行都没问题。

所以可能的结果是:

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

2 个答案:

答案 0 :(得分:7)

对于SQL Server [edit]和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

您可能想要在表格中添加某种唯一键,只是想一想。

答案 1 :(得分:1)

如果您向我们提供给您的第一批结果的T-SQL语句,我们也可以帮助您朝着一个方向前进,并提供一些信息,以便如何重新编写以获得您想要的结果。