0

この SQL ステートメントを理解するのに苦労しています。

これがテーブルのスキーマです。

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

基本的には、studentID に基づいて出席率をカウントし、このような列に表示したい

studentID | subjectID | attendancePercentage

AttentionPercentage は、その学生の 0 の数 / 総エントリ数です。

これが私がしたことであり、望ましい結果が得られませんでした。

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

それは失敗しました。

私が達成しようとしていることを理解したことを願っています。

4

1 に答える 1

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' 
于 2012-05-11T02:27:16.273 に答える