1

我想计算一个部门所有学生的总体平均 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 ### and HAVING ###) 编写这样的查询?如何?

4

1 回答 1

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%')
   )
于 2012-10-20T00:50:48.373 回答