2016-10-29 4 views
0

私はIMDBデータベースを持っています。私はほとんどの映画が制作された上位2年を探しています。年月を経て年代順にソートし、年を印刷する必要があります。QL:上位2を検索して逆順

私はこのリストを計算し、それを後で別の方法でソートしようとしていますが、FROMステートメントではテーブルを参照せず代わりに最後の 'order by'ステートメントでは何も注文できません次のステートメントを開きます。それは私の結果を適切に注文することができないように、 "未知の列トップ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

私はあなたがこのために探していると思う:

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は、年に基づいています。
  • 年だけを望むように見えるので、外部クエリはその列を選択します。
+0

はい、動作します。素晴らしい。ありがとうございました! – ld4795

関連する問題