gpt4 book ai didi

mysql - 按 COUNT(something) 排序与按 #column 排序(sqlzoo 示例)

转载 作者:行者123 更新时间:2023-11-29 12:10:31 28 4
gpt4 key购买 nike

我试图解决 http://sqlzoo.net/wiki/More_JOIN_operations 下的问题 15

我不明白为什么我的查询是错误的,即使我的输出就像它应该的那样。

这是我的查询:

SELECT movie.title, COUNT(actorid)
FROM movie JOIN casting on movie.id=movieid
WHERE yr='1978'
GROUP BY casting.movieid
ORDER BY COUNT(casting.actorid) DESC

官方答案:

  SELECT title, COUNT(actorid)
FROM casting,movie
WHERE yr=1978
AND movieid=movie.id
GROUP BY title
ORDER BY 2 DESC

如果我只是将查询中的 ORDER BYORDER BY COUNT(casting.actorid) DESC 更改为 ORDER BY 2 DESC答案被接受(正确)。这有什么原因吗?

最佳答案

所有这三个都应该被接受:

SELECT m.title, COUNT(c.actorid) as NumActors
FROM movie m JOIN
casting c
on m.id= c.movieid
WHERE yr = '1978'
GROUP BY c.movieid
ORDER BY COUNT(c.actorid) DESC

和:

ORDER BY 2 DESC

和:

ORDER BY NumActors DESC

感谢使用正确的显式JOIN语法。简单规则:不要在 FROM 子句中使用逗号。

请注意:我认为 2 的使用可能会从某些符合 ANSI 标准的数据库的 future 版本中删除。

关于mysql - 按 COUNT(something) 排序与按 #column 排序(sqlzoo 示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30780245/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com