我的程序将按照排名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
我不太确定如何编写该查询,请帮助。
非常感谢!
答案 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