2011-01-31 126 views
0

我試圖從表中找出x個「最受歡迎」的記錄,其中有大量重複條目。根據重複字段的數量,我至少還有記錄,但我也需要按字母順序排列。根據重複次數選擇行,按字母順序排列

例如:

SELECT country, COUNT(*) TotalCount 
FROM destinations 
GROUP BY country 
HAVING COUNT(*) > 1 
ORDER BY COUNT(*) DESC 
LIMIT 4 

這將返回記錄爲:

國家 - TOTALCOUNT
墨西哥 - 15
古巴 - 12
美國 - 10
澳大利亞 - 5

我將如何去返回他們按國家排序?我已經嘗試將ORDER BY更改爲country字段,但是這會忽略流行度,並會使用任意數量的重複項返回記錄。

會選擇一個選擇內的答案/可能嗎?

+0

你應該表現出期望的結果。澳大利亞,古巴,墨西哥,美國... – 2011-01-31 19:49:25

+0

這就是我正在試圖斯蒂芬妮:)謝謝 – 2011-01-31 21:52:58

回答

1

不能MySQL的只是這樣做:

Select country 
    , count(*) 
    from theTable 
group by country 
having count(*) > 1 
order by country 
2
SELECT country, count 
FROM 
      (SELECT country, COUNT(*) as count 
      FROM ... 
      HAVING ...) as Dup 
ORDER BY 
     country 
+0

但是,我不能得到上述工作 - 它只是返回一個單一的記錄(?) – 2011-01-31 21:51:14