SQL Count()没有给出想要的结果

时间:2012-05-11 02:22:16

标签: mysql count aggregate-functions

我在弄清楚这个SQL语句时遇到了一些困难。

这是表的架构。

studentID |subjectID | attendanceStatus | classDate | 
1234567      ...           1               .....
1234567      ...           0 

基本上我想根据studentID计算出勤率,并将其显示在这样的列中

studentID | subjectID | attendancePercentage

出勤率百分比是该学生的0 /总参赛人数

这是我所做的,并没有给出预期的结果。

SELECT studentID, COUNT(attendanceStatus =  0) AS Absent,
COUNT( attendanceStatus = 1) As Present
FROM attendance WHERE studentID = '1234567';

失败了。

我希望我能理解我想要实现的目标。

1 个答案:

答案 0 :(得分:1)

我认为你需要使用总和。

SELECT  studentID ,
        SUM(CASE WHEN attendanceStatus = 0 THEN 1
                 ELSE 0
            END) AS Absent ,
        SUM(CASE WHEN attendanceStatus = 1 THEN 1
                   ELSE 0
              END) AS Present
FROM    attendance
WHERE   studentID = '1234567'