什么是sql命令来获取mysql数据库中car table中最高可用的前10个模型?
有2个相关的表,型号和汽车。为了简单,还没有关于品牌表的说明。如下所示。
> model car
> -------------------- -------------------------------------
> model_id| model_name| |car_id|license_plate_number|model_id |
> --------------------- -------------------------------------
> 0 | altis | | 0 | xd-3203 | 1 |
> 1 | march | | 1 | dj-2323 | 1 |
> 2 | civic | | 2 | kk-9999 | 2 |
model_id是car table中的外键。
假设有50种车型和200辆车。 请告诉我如何获得汽车表中最高的top10模型。 并获得每个top10车型的车号。
或告诉我这个概念,我是否需要分组,计数或其他什么?
答案 0 :(得分:3)
基于计算行获得前10名的基本查询是:
-- SQL SERVER
select top 10 model_id
, count(*) as qtyCars
from cars
group by model_id
order by count(*) desc
-- Other servers
select model_id
, count(*) as qtyCars
from cars
group by model_id
order by count(*) desc
LIMIT 10
编辑:我通常不会推送自己的博客,但几年前我写的这篇文章始终是我最受欢迎的搜索热门,并涵盖GROUP BY:{{3} }
答案 1 :(得分:0)
不确定您希望如何对它们进行分组,因此我只是将它们按照model_id进行分组
SELECT TOP 10 * FROM model JOIN car ON car.model_id = model.model_id GROUP BY car.model_id DESC