Получить список всех кафедр в которых одинаковые дисциплины и объединить в первую подходящую кафедру
Есть две таблицы, Кафедра (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;