MySql查询:多个表的总平均值

时间:2012-10-20 00:42:53

标签: mysql oracle

我想计算其中一个部门的所有学生的总体平均GPA,这是我想出的但是它不起作用

COLUMN AVERAGE FORMAT 0.999  
SELECT  AVG(GPA) "AVERAGE"  
FROM    STUDENT  
WHERE   (YEAR < 4) AND 
        (MAJOR LIKE '%ACCT%') AND 
        (MAJOR LIKE '%FINA%') AND 
        (MAJOR LIKE '%MGMT%') AND 
        (MAJOR LIKE '%AISY%') AND 
        (MAJOR LIKE '%MINS%') AND 
        (MAJOR LIKE '%SCMS%');  

所以他们应该都是本科生,并参加其中一个专业。

另外还有一个问题:是否可以使用“GROUP BY ###和HAVING ###”编写这样的查询?怎么做?

1 个答案:

答案 0 :(得分:0)

这将为您提供所有年级<%的学生的平均分数。 4在以下一个专业中。我相信您的问题是使用AND代替OR进行专业。不太可能有一个专业的学生的名字与所有这些字符串相匹配。

SELECT AVG(GPA) AS "AVERAGE"  
FROM STUDENT
WHERE (YEAR < 4)
   AND
   (
      (MAJOR LIKE '%ACCT%') OR
      (MAJOR LIKE '%FINA%') OR 
      (MAJOR LIKE '%MGMT%') OR 
      (MAJOR LIKE '%AISY%') OR 
      (MAJOR LIKE '%MINS%') OR 
      (MAJOR LIKE '%SCMS%')
   )