根据重复数量选择行,按字母顺序排序

时间:2011-01-31 19:43:37

标签: sql mysql duplicates

我正在尝试从有许多重复条目的表中选择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字段,但是这会忽略流行度,返回包含任意数量重复项的记录。

选择中的选择是否是答案/可能?

2 个答案:

答案 0 :(得分:2)

SELECT country, count 
FROM 
           (SELECT country, COUNT(*) as count 
            FROM ... 
             HAVING ...) as Dup 
ORDER BY
        country

答案 1 :(得分:1)

mySQL不能这样做:

Select country
     , count(*)
  from theTable
 group by country
having count(*) > 1
 order by country