选择前1个ID,DISTINCT字段

kel*_*dar 5 sql t-sql sql-server sql-server-2008

我有一个表样本表,如下所示:

ID | City
--------------
1  | New York
2  | San Francisco
3  | New York
4  | Los Angeles
5  | Atlanta
Run Code Online (Sandbox Code Playgroud)

我想为每个城市选择不同的城市和顶部ID。例如,从概念上讲,我想执行以下操作

SELECT TOP 1 ID, DISTINCT City
FROM Cities
Run Code Online (Sandbox Code Playgroud)

应该给我:

ID | City
--------------
1  | New York
2  | San Francisco
4  | Los Angeles
5  | Atlanta
Run Code Online (Sandbox Code Playgroud)

由于纽约出现了两次,因此1在此实例中它采用了第一个ID 。

但是我得到了错误:

选择列表中的“ Cities.ID”列无效,因为它既不包含在聚合函数中也不在GROUP BY子句中。

Rob*_*ert 5

尝试这种方式:

SELECT min(ID), City
FROM Cities
Group by City
Run Code Online (Sandbox Code Playgroud)

MIN功能用于ID从两个New York城市中选择一个。