我有一个查询,我想从表中获取20个最受欢迎的位置,然后按字母顺序排序。我想知道是否有更清洁或更有效的方法来做到这一点?
SELECT
city
FROM (
SELECT
city,
count(*) AS cnt
FROM locations
GROUP BY city
ORDER BY cnt DESC
LIMIT 20
) s ORDER BY city;
答案 0 :(得分:3)
稍微清洁一点:
SELECT city FROM (
SELECT city FROM locations
GROUP BY city
ORDER BY count(*) DESC
LIMIT 20
) s ORDER BY city
如果您不打算使用它,则无需检索count(*)
。