当我使用列号和聚合函数尝试ORDER BY
时,我得到了2个不同的结果。这两种方法有什么区别? (我以为他们有相同的输出)
按照演员表大小的顺序列出1978年的电影。下面有3个表格:
movie(id, title, yr, director)
actor(id, name)
casting(movieid, actorid, ord)
使用带有列号的ORDER BY回答1:
SELECT title
,COUNT(a.id)
FROM movie m
,casting c
,actor a
WHERE m.id=movieid
AND a.id=actorid
AND yr=1978
GROUP BY title
ORDER BY 2 DESC
使用COUNT(a.id)
。除最后一行外,一切都是一样的
...
ORDER BY COUNT(a.id) DESC
答案 0 :(得分:0)
我建议你制作一个子查询并订购干净的结果
答案 1 :(得分:0)
我认为Jester有它。以下是您的一个例子:
select title, actor_count from (
SELECT title
,COUNT(a.id) actor_count
FROM movie m
,casting c
,actor a
WHERE m.id=movieid
AND a.id=actorid
AND yr=1978
GROUP BY title) subquery
order by actor_count