SQL Query查找最大值

时间:2014-05-22 13:34:26

标签: sql oracle

我想写一个查询,列出注册了最高总积分的学生。

SELECT q3.S_ID,
       q3.S_LAST,
       q3.S_FIRST,
      max( q3.Total Credits)
FROM
  (SELECT q2.S_ID,
          q2.S_LAST,
          q2.S_FIRST,
          sum(q1.CREDITS) Total Credits
   FROM
     (SELECT COURSE_NO,
             CREDITS
      FROM COURSE) q1
   JOIN
     (SELECT s.S_ID,
             s.S_LAST,
             s.S_FIRST,
             cs.COURSE_NO
      FROM STUDENT s
      JOIN ENROLLMENT e ON s.S_ID = e.S_ID
      JOIN COURSE_SECTION cs ON e.C_SEC_ID = cs.C_SEC_ID) q2 ON q1.COURSE_NO = q2.COURSE_NO
   GROUP BY q2.S_ID,
            q2.S_LAST,
            q2.S_FIRST) q3
GROUP BY q3.S_ID,
         q3.S_LAST,
         q3.S_FIRST;

但它不起作用。这是我得到的错误:

ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:
Error at Line: 28 Column: 21

有人可以帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我很确定(没有Oracle机器可以测试这个)你的别名是问题:

sum(q1.CREDITS) Total Credits

应该是

sum(q1.CREDITS) "Total Credits"

因此

max( q3.Total Credits)

应该是

max( q3."Total Credits")

但是可能还有更多,正如我所说,我没有Oracle机器可以测试它。