【发布时间】:2018-11-12 21:00:01
【问题描述】:
我有以下查询可以正确解析租车中最常见的颜色。这很好用。
SELECT Colour
FROM car
INNER JOIN rents
ON car.PlateNr=rents.PlateNr
GROUP BY car.colour
ORDER BY COUNT(car.colour) DESC
LIMIT 1
;
但是,如果有 2 个相同的最常见值(对于汽车颜色),则第二个会丢失。如何在 MYSQL 中选择两个最常见的值?我在其他 DBMS 中看到了 TOP 1 value 选项,但我似乎在 MYSQL 中找不到等效项。
【问题讨论】:
-
请发布一些示例数据和预期输出。另外,您的 MySQL 服务器版本是什么?可以升级到最新版本(8.0.2 及以上)吗?
-
@paulsm4 OP 在这里基本上需要
DENSE_RANK()功能。他希望获得排名靠前的行[如果出现平局,请全部获得]。 -
请尽量避免使用全大写,因为它被认为是大喊大叫。
-
"我在其他 DBMS 中看到了 TOP 1 值选项,但在 MYSQL 中似乎没有找到等效项。"是的,您已经在使用它的 SQL Server
TOP 1在 SQL Server 中与 MySQL 的LIMIT 1相同
标签: mysql