我有IMDB数据库;我正在寻找制作大多数电影的前两年,而且我必须按照年代顺序对它们进行排序,并且只打印多年。
我正在尝试计算列表并对其进行排序。反过来说'之后但是我不能在最后的顺序中按顺序排序'语句因为在FROM语句中我不引用任何表而是打开下一个语句。它说"未知的列顶部2"以及我无法相应地订购我的结果。
我做错了什么?
SELECT *
FROM
(SELECT m.year, COUNT(*)
FROM movies as m
GROUP BY m.year
ORDER BY m.year DESC) AS topTwo
ORDER BY **topTwo** ASC
LIMIT 2;
答案 0 :(得分:0)
我认为你正在寻找这个:
SELECT topTwo.year
FROM (SELECT m.year, COUNT(*) as cnt
FROM movies m
GROUP BY m.year
ORDER BY COUNT(*) DESC
LIMIT 2
) topTwo
ORDER BY year ASC;
注意:
LIMIT
进入子查询。COUNT(*)
被赋予别名。ORDER BY
基于计数。ORDER BY
基于年份。