我正在尝试按别名列进行订购,但没有任何运气。
表格:
电影(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'附近:语法错误。
答案 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;