Я полагаю, что будут просто if конструкции с throw new (тип исключения). А ошибки определенные будут просто if-от проверяться и возвращаться false, если это релиз.
SELECT _ic.name AS CourseName, _is.name AS StatusName, COUNT(*) as Frequency FROM `act_courses` _ac
INNER JOIN `inf_courses` _ic ON _ac.course_id = _ic.id
INNER JOIN `inf_statuses` _is ON _ac.status = _is.id
GROUP BY CourseName
Но он выводит сумму строк для определенного курса без учета различных статусов.