我似乎找不到合适的解决方案来解决以下(可能是古老的)问题,所以希望有人能够提供一些信息。我需要在MySQL中返回1个不同列以及其他非不同列。
我在 MySQL 中有以下表:
id name destination rating country
----------------------------------------------------
1 James Barbados 5 WI
2 Andrew Antigua 6 WI
3 James Barbados 3 WI
4 Declan Trinidad 2 WI
5 Steve Barbados 4 WI
6 Declan Trinidad 3 WI
我想要一个SQL语句,它可以返回根据国家排列的DISTINCT名称以及目的地和评分。
id name destination rating country
----------------------------------------------------
1 James Barbados 5 WI
2 Andrew Antigua 6 WI
4 Declan Trinidad 2 WI
5 Steve Barbados 4 WI
正如您所看到的,詹姆斯和德克兰拥有不同的评分,但是相同的姓名,因此它们只返回一次。
由于评分不同,以下查询会返回所有行。是否有办法返回上面的结果集?
SELECT (distinct name), destination, rating
FROM table
WHERE country = 'WI'
ORDER BY id
SELECT name, destination, MAX(id) AS id FROM table GROUP BY name, destination;
(或包装在SELECT * FROM table WHERE id IN (…)
中)。 - WoodrowShigeru