Group by age in first lesson or course
unknown
mysql
3 years ago
798 B
6
Indexable
SELECT TIMESTAMPDIFF(YEAR, birthday, ( SELECT least(IFNULL(( SELECT `start` FROM lessons WHERE student_id = students.id LIMIT 1), CURRENT_DATE), IFNULL(( SELECT `start_date` FROM courses JOIN course_students ON courses.id = course_students.course_id WHERE student_id = students.id ORDER BY `start_date` ASC LIMIT 1), CURRENT_DATE)))) AS age, count(*) AS total FROM students WHERE birthday IS NOT NULL AND deleted_at IS NULL and(EXISTS ( SELECT * FROM lessons WHERE student_id = students.id) OR EXISTS ( SELECT * FROM courses join course_students on courses.id = course_students.course_id WHERE student_id = students.id)) GROUP BY age
Editor is loading...