【发布时间】:2015-11-15 18:12:01
【问题描述】:
我必须为“Stokes 的平均收视率最高的歌曲是什么?”这个问题编写 SQL。 我被困在我必须显示最大平均值的事实上。我现在有这个:
SELECT STitle
FROM Songs S, Like L, Perform P, Artists A
WHERE S.SId=L.SId
AND P.AId=A.AId
AND S.SId=P.SId
AND AName="The Stokes"
AND Rating=(
SELECT Max (Rating) as "Highest rating", AVG(Rating) as "average rating"
FROM Songs S, Like L
WHERE S.SId=L.SId
Group BY S.SId, STitle);
我希望你们中的一个人能得到它,因为我已经坚持了一段时间了。 谢谢大家! :)
【问题讨论】:
-
如果您正在学习 SQL,请学习使用正确的显式
JOIN语法。仅在FROM子句中使用逗号,因为 MS Access 不明确支持CROSS JOIN。 -
我不敢相信有人在
LIKE是表名的地方提出了一个任务。下次您应该天真地询问使用保留字是否是个好主意。 -
我认为您需要先计算 AVG 评级(内部子查询),然后计算 MAX(外部子查询)。