2016-12-16 11 views
0

この挑戦で私のソリューションがうまくいかない理由を誰かに見せてもらえますか?sqlzoo "More Join"#15

http://sqlzoo.net/wiki/More_JOIN_operations

15.その後、タイトルで1978年にリリースされたフィルムは、キャストに俳優の数が発注一覧。

SELECT title, COUNT(actorid) AS actors FROM movie 
JOIN casting ON id = movieid 
WHERE yr = 1978 
GROUP BY title 
ORDER BY actors DESC 
+1

あなたはタイトルによって発注されていません。あなたは俳優たちだけが注文しています(そして、あなたはその質問が要求しない 'DESC 'を注文しています)。 – Siyual

答えて

2

あなたはセカンドレベルORDER BY用語を逃しているので。それは次のようになります。

ORDER BY actors DESC, title 

(質問は、明示的に降順を要求しませんが、彼らの公式「正解は」そのように命じている。)

+0

エラー: GROUP BY句がない場合、GROUP列(MIN()、MAX()、COUNT()、...)をGROUP列なしで混在させることは不正です。 – veron

+0

@veron :私はそのエラーを取得しませんでした。あなたはまだ 'GROUP BY title'句を持っていますか? – dan04

+0

そうです。 GROUP BY句は、ORDER BY俳優のDESC、titleの前に置かれています。それは今働く。 – veron

1

要件は番号で注文をお願いしていますのでそしてタイトル。そのため、あなたはOrder by句でtitleを追加する必要があります。

SELECT title, COUNT(actorid) AS actors FROM movie 
JOIN casting ON id = movieid 
WHERE yr = 1978 
GROUP BY title 
ORDER BY actors DESC, title