Получить список всех кафедр в которых одинаковые дисциплины и объединить в первую подходящую кафедру

Есть две таблицы, Кафедра (id,name) и Дисциплина (id,KafedraID) нужно получить список всех кафедр в которых одинаковые дисциплины и объединить в первую подходящую кафедру. Помогите написать SQL запрос введите сюда описание изображения


Ответы (1 шт):

Автор решения: Akina
WITH cte AS ( SELECT kaf, STRING_AGG(id, ',') WITHIN GROUP (ORDER BY id) ids
              FROM dis
              GROUP BY kaf )
DELETE dis
FROM dis
JOIN cte cte1 ON dis.kaf=cte1.kaf
JOIN cte cte2 ON cte1.ids = cte2.ids AND cte1.kaf > cte2.kaf;

fiddle

→ Ссылка