在SQL中显示AVG评估



我几周前开始使用SQL,所以我对这方面还很陌生!我在家庭作业中遇到了这个练习,我有点困惑或不确定我是否做对了!我把这个贴在这里是为了检查我是否犯了错误。如果可能的话,你能告诉我我做得是否正确吗?以防我没有指出错误,并提供一些如何纠正错误的提示吗?

所以这就是练习

  1. 给定以下关系模式:

USER(SSN、NameU、SurnameU、城市、出生年份、用户类型(

电影(代码M,标题,国家,语言,电影工作室,流派(

评估(SSN,CodM,评估,日期(

a。对于每种用户类型,显示由"Marvel";(MovieStudio="漫威"(。

SELECT  AVG(EVALUATION)
FROM    EVAUATION E, USER U, MOVIE M 
WHERE   E.SSN=U.SSN AND E.CODM=M.CODM AND MOVIESTUDIO='MARVEL'  

对于第一部分,我有点困惑,因为它对每个用户类型都说。我不认为这是正确的,但我如何显示每个用户类型的信息

首先,近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提供一行。

最新更新