mysql - MYSQL 查找最常见的值
问题描述
我有以下查询可以正确解决租车中最常见的颜色。这工作正常。
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 值选项,但我似乎在 MYSQL 中找不到等效项。
解决方案
您可以先计算顶部颜色计数,然后使用它来选择具有相同值的记录。
请参阅SQL 小提琴。
SET @top_colour_cnt = (select COUNT(car.colour) as max_color_cnt
from car
GROUP BY car.colour
ORDER BY COUNT(car.colour) DESC
LIMIT 1
);
SELECT @top_colour_cnt;
SELECT Colour, COUNT(car.colour)
FROM car
GROUP BY car.colour
having COUNT(car.colour) = @top_colour_cnt
;
推荐阅读
- swift - 处理完成后功能未停止
- powerbi - 如何创建以逗号分隔的多个值的动态卡片
- python - Python:iNotify_Simple 从其他目录获取文件
- javascript - AdonisJS 关联多个 oneToMany 关系
- django - 如何仅在用户第一次访问页面时增加访问量?
- clojure - Clojure - 使用 Spectre 转换嵌套数据结构,将一个节点替换为多个
- flutter - 没有 appbar 的抽屉 Flutter
- dart - 使用 shift+r 颤振时,Vscode 不支持全局评估
- javascript - 映射嵌套复选框不起作用ReactJS
- c++ - 尝试使用 int[] 作为类型名模板,编译器无法识别函数 min 原型中的参数