出席率を集計するSQL
前提・実現したいこと
出席状況(lecture_attend_logs.attend_status)を重複を排除して表示させたい
起きている問題
テーブルを追加したことにより、下記の値が重複して表示される
select count(lecture_attend_logs.attend_status) = "attended" or null) as "出席(授業数)", count(lecture_attend_logs.attend_status = "absented" or null) as "欠席(授業数)", count(lecture_attend_logs.attend_status = "late" or null) as "遅刻数", count(lecture_attend_logs.attend_status = "late" or null) DIV 3 as "遅刻分欠席(3回で欠席1回)", count(lecture_attend_logs.attend_status = "public_absented" or null) as "公欠(授業数)", count(lecture_attend_logs.attend_status = "closed" or null) as "休校", ROUND((count(lecture_attend_logs.attend_status = "attended" or null ) + (count(lecture_attend_logs.attend_status = "late" or null) - count(lecture_attend_logs.attend_status = "late" or null) DIV 3) + count(lecture_attend_logs.attend_status = "public_absented" or null) + count(lecture_attend_logs.attend_status = "closed"or null )) / count(lecture_attend_logs.attend_status),5) * 100 as "出席率合計(%)" from lecture_attend_logs join lectures on lecture_attend_logs.lecture_id = lectures.id join students on lecture_attend_logs.student_id = students.id join klass_subjects on lectures.klass_subject_id = klass_subjects.id join klasses on klasses.id = klass_subjects.klass_id join student_japanese_schools on students.id = student_japanese_schools.student_id join japanese_schools on japanese_schools.id = student_japanese_schools.japanese_school_id join klass_students on klass_students.klass_id = klasses.id
試したこと
上記のcountにdistinctを追加して重複を排除しようと試みたのですが、attend_statusの重複が排除されるため、1が出力される
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。