2011-03-08 57 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