2016-08-16 18 views
1

讓我們假設我有這樣的MySQL表結構我想參觀人數最多的5個部分降序排列

+----+------------+-------+ 
| id | section_id | views | 
+----+------------+-------+ 
| 1 |  2  | 15 | 
+----+------------+-------+ 
| 2 |  2  | 12 | 
+----+------------+-------+ 
| 3 |  1  | 15 | 
+----+------------+-------+ 
| 4 |  3  | 60 | 
+----+------------+-------+ 
| 5 |  2  | 100 | 
+----+------------+-------+ 
| 6 |  2  | 20 | 
+----+------------+-------+ 
| 7 |  4  | 14 | 
+----+------------+-------+ 
| 8 |  5  | 60 | 
+----+------------+-------+ 
| 9 |  6  | 12 | 
+----+------------+-------+ 
| 10 |  1  | 17 | 
+----+------------+-------+ 

我想參觀人數最多的5個部分降序排列

我已經嘗試SELECT section_id FROM my_table ORDER by VIEWS DESC LIMIT 5和已經嘗試了一些其他的東西像sum()但最後我,因爲我沒有使用MySQL的很長一段時間

你的幫助是非常讚賞弄糊塗了

回答

1

SQL:

SELECT section_id, SUM(views) 
    FROM my_table 
GROUP BY section_id 
ORDER BY SUM(views) DESC 
    LIMIT 5 

結果:

section_id sum(views) 
2   147 
3   60 
5   60 
1   32 
4   14 

遊樂場:

http://sqlfiddle.com/#!9/6e3266/3/0

+0

謝謝..它的作品,我感謝你的幫助:) –

0

如果你不想要id字段,然後與group by語句一起進行聚合並一起限制。

SELECT section_id, SUM(Views) as Views 
FROM 
    my_table 
GROUP BY 
    section_id 
ORDER by 
    VIEWS DESC 
LIMIT 5; 
+0

感謝..它的作品,我很欣賞你的幫助:) –

+0

嗯@ DanielAlde r提供了答案,我已經提供了幾分鐘(至少超過7分鐘)後,我的答案沒有得到接受..........很高興它幫助..... – Matt

+0

你是對的。但你不知道,當我開始小提琴的時候,你的答案不存在,我也沒有看到你的答案中的聚合,我想你的答案走向另一個方向。無論如何,我沒有接受回答 –