如何编写sql命令来获取这样的数据

时间:2011-03-08 13:45:34

标签: mysql sql

什么是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车型的车号。

或告诉我这个概念,我是否需要分组,计数或其他什么?

2 个答案:

答案 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