SQL запрос для создания списков курсов. ГРУППА ПО? - PullRequest
1 голос
/ 08 февраля 2020

У меня есть mysql таблица «уроков», из которой я хочу вывести список курсов для каждого учителя (см. Рисунок).

See image

До сих пор я хотел использовать GROUP BY и GROUP_CONCAT для вывода, но мне пока не удалось. Я понятия не имею, на данный момент. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 08 февраля 2020

Если я правильно понимаю, уроки, которые проводятся одновременно (на основе последних двух столбцов) и для одного и того же учителя и имеют одинаковое имя, должны объединяться в «курс».

Если это В этом случае вы можете использовать два уровня агрегации:

select group_concat(ids) as ids,
       group_concat(class_id) as class_ids,
       teacher, name, weekday_hours
from (select l.class_id, l.teacher_id, l.name,
             group_concat(l.weekday, ':', l.hour order by l.weekday, l.hour) as weekday_hours,
             group_concat(l.id order by l.id) as ids
      from lessons l
      group by l.class_id, l.teacher_id, l.name
     ) l
group by teacher, name, weekday_hours;
...