2011-01-31 82 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