2017-05-07 63 views
1

這裏是我的查詢:如何選擇最後2個最後使用的標籤?

SELECT * FROM (
    SELECT count(*) cnt, * FROM articles_tag 
     GROUP BY tag_id 
) x 

ORDER BY cnt 
LIMIT 2 

但在近(第一行拋出一個語法錯誤。我該如何解決它?


我想選擇最後使用的2個標籤。

// articles_tag 
+----+------------+--------+ 
| id | article_id | tag_id | 
+----+------------+--------+ 
| 1 | 123  | 4  | 
| 2 | 456  | 3  | 
| 3 | 789  | 6  | 
| 4 | 123  | 3  | 
| 5 | 456  | 6  | 
| 6 | 987  | 2  | 
+----+------------+--------+ 

預期結果:

+--------+ 
| tag_id | 
+--------+ 
| 3  | 
| 6  | 
+--------+ 
+0

嗨。你的語法是一團糟。你究竟在做什麼:) –

+0

請發佈樣本數據和期望的結果 –

+0

你的問題和樣本查詢是如此遙遠。你的頭銜說20但你有限10,你提到最後使用的標籤,但你的查詢試圖得到一個計數..這裏發生了什麼? –

回答

2

我想你的意思

select tag_id,count(*) as cnt from articles_tag group by tag_id order by count(*) limit 2 
+0

正確,謝謝,upvote –

+0

或者只是'按cnt desc排序' – Rahul

+0

按次數排列(*)將適用於所有的口味...... –

1

你不需要子選擇,算了算的出現,descendantly命令他們,並限制選擇2

所以它會是:

SELECT tag_id, COUNT(tag_id) occurrences FROM articles_tag 
GROUP BY tag_id 
ORDER BY occurrences DESC 
LIMIT 2 
+0

謝謝.. upvote –