当我写查询时:
SELECT DISTINCT City FROM Customers;
Run Code Online (Sandbox Code Playgroud)
它返回Customers表中的所有不同城市.
但是当我写下查询时:
SELECT DISTINCT City,* FROM Customers;
Run Code Online (Sandbox Code Playgroud)
它返回Customers表中的所有行(首先是城市列,后面是所有列,包括city).
即使我们使用不同的关键字,显示所有记录的原因是什么?
DISTINCT关键字不适用于单个列,它适用于整个记录.如果表的行与所有列的值不相同,则它们不是不同的.
假设您的customers表中有一些唯一的列ID.如果您只想要每个城市的最新客户ID,您可以尝试:
SELECT Customers.* FROM
Customers JOIN (
SELECT city, MAX(ID) as id
FROM Customers
GROUP BY city
) as max_id
on Customers.ID=max_id.id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |