2011-03-08 106 views
0

什么是sql命令获得最高可用在mysql数据库的车表中的前10名模型?如何编写sql命令来获得这样的数据

有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是车表中的外键。

假设有50个车型和200辆车。 请指导我如何获得汽车表中最高的top10车型。 并获得每个top10车型的可用车号。

或告诉我这个概念,我需要群组,数量还是别的吗?

+1

你尝试过什么吗?如果其他用户可以看到您尝试过的某种代码,并且看看他们能否帮助您引导您,那么这很有帮助。 – 2011-03-08 13:48:50

+0

定义“车表最高” - TOP 10 car_id? – Filburt 2011-03-08 13:50:20

+0

你在问哪些模特“最高”,但我不确定你的排名“高”。你能发布你想要的结果吗?而且你到目前为止尝试过哪些SQL? – rajah9 2011-03-08 13:51:17

回答

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:http://database-programmer.blogspot.com/2008/04/group-by-having-sum-avg-and-count.html

0

不知道你怎么想将它们分组,所以我只是通过他们的MODEL_ID分组他们

SELECT TOP 10 * FROM model JOIN car ON car.model_id = model.model_id GROUP BY car.model_id DESC 
相关问题