MySQL计数+汇总以小计查询问题

时间:2011-03-25 18:32:48

标签: mysql sql

我的程序将按照排名desc。

排序的表中的前100行
SELECT city FROM table ORDER BY rank DESC LIMIT 0,100

返回:

Seattle,
Portland,
Los Angeles,
Portland,
Eugene,
Eugene,
etc...

然后我想计算每个城市在结果集中出现的频率(必须是按排名desc排序的部分100,而不是整个表。)

我想要的是什么:

Portland, 2
Eugene, 2
Seattle, 1
Los Angeles, 1

我不太确定如何编写该查询,请帮助。

非常感谢!

1 个答案:

答案 0 :(得分:2)

SELECT city, count(*)
FROM
(
  SELECT city FROM table ORDER BY rank DESC LIMIT 0,100
) as sub
GROUP BY city
ORDER BY COUNT(*) DESC