【问题标题】:Highest Average in SQL Microsoft AccessSQL Microsoft Access 中的最高平均值
【发布时间】: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);

我希望你们中的一个人能得到它,因为我已经坚持了一段时间了。 谢谢大家! :)

The Tables

The Error

【问题讨论】:

  • 如果您正在学习 SQL,请学习使用正确的显式 JOIN 语法。仅在 FROM 子句中使用逗号,因为 MS Access 不明确支持 CROSS JOIN
  • 我不敢相信有人在LIKE 是表名的地方提出了一个任务。下次您应该天真地询问使用保留字是否是个好主意。
  • 我认为您需要先计算 AVG 评级(内部子查询),然后计算 MAX(外部子查询)。

标签: sql ms-access max average


【解决方案1】:
select top 1 sid, avg(rating) from songs 
   join [like] on [like].sid = songs.sid
   join perform on perform.sid = songs.sid
   join compose on compose.sid = songs.sid
   join artists on perform.aid = artists.aid
 where artists.aname = "The Stokes"
 group by artists.aid 
 order by avg(rating) desc

如果没有表格,我不确定这是否可行。我通常需要花点功夫,但它应该能让你朝着正确的方向前进

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2015-01-17
    • 2022-11-17
    • 2021-02-14
    相关资源
    最近更新 更多