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子句中。
尝试这种方式:
SELECT min(ID), City
FROM Cities
Group by City
Run Code Online (Sandbox Code Playgroud)
MIN功能用于ID从两个New York城市中选择一个。