MySQL:如何仅显示最小计数而不使用限制?

标签 mysql sql count output min

这里的逻辑错误是输出显示如下:

+-----------------+-------+----------+-------+
| registration_no | color | producer | count |
+-----------------+-------+----------+-------+
| X23-234         | green | VW       |     2 |
| BC-343          | red   | BMW      |     2 |
| TW-435          | blue  | Ford     |     1 |
| 232-444         | pink  | Army     |     2 |
+-----------------+-------+----------+-------+

如您所见,最小计数是蓝色,我希望它仅显示此:

| TW-435          | blue  | Ford     |

推导的查询不应限制仅关键字嵌套查询。 这是我的 sql 查询:

mysql> SELECT registration_no, color, producer, COUNT(*) as count 
       FROM car, car_type, booking 
       WHERE car.car_type_id = car_type.car_type_id and booking.car_id = car.car_id 
       GROUP BY car.car_id;

我就是想不出解决办法。

最佳答案

按 count(*) 排序,然后限制在第一行

SELECT registration_no, color, producer, COUNT(*) as count 
FROM car, car_type, booking 
WHERE car.car_type_id = car_type.car_type_id and booking.car_id =car.car_id 
GROUP BY car.car_id
ORDER BY COUNT(*) ASC
LIMIT 1;

如果您只想要一行,则此方法有效。如果您有更多 count(*) = 1 行,那么您应该使用其他方法

如果您想显示最高计数,只需降序排序

....
ORDER BY COUNT(*) DESC

但在这种情况下,您将得到 count = 2 的 3 行之一,而不是全部三行

关于MySQL:如何仅显示最小计数而不使用限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32309323/

相关文章:

mysql - 在不自动递增的情况下重用 mysql 表中的行

mysql数据转储格式化

javascript - 在 php 页面上如何使用 mysql 在第 n 行之后插入行

mysql - 显示重复的行号

excel - VBA:计数出现一对值的次数

php - 我无法在数据库中添加行

sql - 使用 Spark SQL 跳过/获取

SQL 语句帮助 - 为每个客户选择最新的订单

mysql - SELECT COUNT 跨一对多关系

mysql - 我可以使用 MySQL Join 进行 COUNT 操作吗?