【问题标题】:Show AVG evaluation in SQL在 SQL 中显示 AVG 评估
【发布时间】:2021-04-27 22:17:40
【问题描述】:

我几周前开始使用 SQL,所以我对这方面还很陌生!我在作业中遇到了这个练习,我有点困惑或不确定我是否做对了!我在这里发布这个来检查我是否犯了任何错误。如果可能的话,你能告诉我我是否做对了,以防我没有指出错误并提供一些关于如何修复它们的提示?

这就是练习

  1. 给定以下关系模式:

USER(SSN、NameU、SurnameU、城市、YearOfBirth、UserType)

电影(CodM、标题、国家、语言、MovieStudio、类型)

评估(SSN、CodM、评估、日期)

一个。对于每种用户类型,显示对由以下人员制作的电影的平均评价 “漫威”(MovieStudio = “漫威”)。

SELECT  AVG(EVALUATION)

FROM    EVAUATION E, USER U, MOVIE M 

WHERE   E.SSN=U.SSN AND E.CODM=M.CODM AND MOVIESTUDIO='MARVEL'  

对于第一部分,我对 针对每个用户类型的部分感到有些困惑。我不认为这是正确的,但我如何显示有关每个用户类型

的信息

【问题讨论】:

  • 您确定复制了正确的架构定义吗?问题中没有描述您在查询中使用的表...
  • 该死的你是对的!对不起!
  • 学习使用正确、明确、标准、可读的JOIN语法。 从不FROM 子句中使用逗号。
  • 真的等吗?我在我的 uni 门户中有一些已解决的练习,他们在 from 子句中使用了逗号?那运动呢?我该如何纠正?

标签: mysql sql


【解决方案1】:

首先,近 30 年前,ANSI-92 标准被采用以替换使用 , 进行表之间的隐式连接,而不是使用显式 JOIN 语法。我强烈建议避免任何和所有试图教你使用, 是正确的材料;不是,用JOIN语法,已经快三十岁了……

最后,您需要考虑使用 GROUP BY 作为聚合的一部分,以获得多个结果,而不仅仅是一个...

SELECT
  U.UserType, AVG(EVALUATION)
FROM
  USER U
INNER JOIN
  EVAUATION E
    ON E.SSN=U.SSN
INNER JOIN
  MOVIE M 
    ON E.CODM=M.CODM
WHERE
  M.MOVIESTUDIO='MARVEL'
GROUP BY
  U.UserType

这将为每个 UserType 提供一行。

【讨论】:

  • 感谢您指出这一点!我不知道
猜你喜欢
  • 1970-01-01
  • 2017-04-13
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 2021-10-10
  • 2015-01-22
  • 1970-01-01
相关资源
最近更新 更多