按别名列排序不起作用

时间:2019-04-09 19:10:10

标签: sql sqlite

我正在尝试按别名列进行订购,但没有任何运气。

表格:

电影(mID,标题,年份,导演) 英文:一部电影的ID号为mID,标题,发行年份和导演。

审阅者(rID,名称) 英文:ID号为rID的审阅者具有特定名称。

评分(rID,mID,星标,ratingDate) 简体中文:审阅者rID在特定的ratingDate上给电影mID授予了几颗星(1-5)。

家庭作业的问题是:

对于每部电影,返回标题和“分级传播”,即该电影的最高和最低分级之间的差。按等级从最高到最低的等级排序,然后按电影标题排序。

我已经尝试了几种方法,但是没有运气。

SELECT Movie.Title, (MAX(Rating.stars) - MIN(Rating.stars)) AS Spread
FROM Movie
JOIN Rating ON Movie.mID = Rating.mID
GROUP BY Rating.mID
ORDER BY Movie.Title
ORDER BY Spread

我期望下面的输出:

MOVIE | SPREAD
Avatar | 2
Gone with the Wind | 2
Raiders of the Lost Ark | 2
E.T. | 1
Snow White | 1
The Sound of Music | 1

但实际输出是查询执行失败:'ORDER'附近:语法错误。

2 个答案:

答案 0 :(得分:0)

SQLite需要1个<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <body> <div class="flex"> <div> <img src="https://via.placeholder.com/926x1104" /> </div> <div> <img src="https://via.placeholder.com/926x1104" /> </div> <div> <img src="https://via.placeholder.com/926x1104" /> </div> </div> </body> </html> 子句,您需要将第二个ORDER BY添加到第一个逗号之间。

ORDER BY

ORDER BY Movie.Title, Spread 带有别名列的原因是有效的,因为在所有RDBMS中,ORDER BY子句在ORDER BY之后执行

答案 1 :(得分:-1)

ORDER BY传播DESC,Movie.Title;