2016-12-16 40 views
0

有人可以告訴我爲什麼我的解決方案不適合這個挑戰嗎?sqlzoo「更多加入」#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(),...)的混合是非法的 – veron

+0

@veron :我沒有得到那個錯誤。你還有'GROUP BY標題'條款嗎? – dan04

+0

沒錯。 GROUP BY子句應該放在ORDER BY actors 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