У меня есть эта таблица (имя таблицы CH);
╔══════╦══════╦══════════╦══════════╗
║ ID_A ║ ID_B ║Category_A║Category_B║
╠══════╬══════╬══════════╬══════════╣
║ 1 ║ a ║ 1 ║ 1 ║
║ 1 ║ b ║ 1 ║ 2 ║
║ 1 ║ c ║ 1 ║ 3 ║
║ 1 ║ a ║ 2 ║ 1 ║
║ 1 ║ b ║ 2 ║ 1 ║
║ 1 ║ c ║ 2 ║ 1 ║
║ 1 ║ a ║ 2 ║ 2 ║
║ 1 ║ b ║ 2 ║ 2 ║
║ 1 ║ b ║ 3 ║ 1 ║
║ 1 ║ c ║ 3 ║ 1 ║
║ 2 ║ a ║ 1 ║ 1 ║
║ 2 ║ b ║ 1 ║ 1 ║
║ 2 ║ a ║ 2 ║ 1 ║
║ 2 ║ c ║ 2 ║ 1 ║
║ 2 ║ b ║ 3 ║ 1 ║
║ 2 ║ c ║ 3 ║ 1 ║
╚══════╩══════╩══════════╩══════════╝
ID (ID_A, ID_B), CAT (CAT_A, CAT_B)
ID (1, a) и ID (1, b) имеют одинаковые категории, CAT (2,1) и CAT (2,2).
Итак, cnt_CAT = 2 для идентификатора (1, a) и идентификатора (1, b)
Какую таблицу я хочу получить:
╔══════╦══════╦═════════╦═════════════╗
║ ID_A ║ Pair ║ cnt_CAT ║ lst_CAT ║
╠══════╬══════╬═════════╬═════════════╣
║ 1 ║ a,b ║ 2 ║{(2,1),(2,2)}║
║ 1 ║ a,c ║ 1 ║ {(2,1)} ║
║ 1 ║ b,c ║ 2 ║{(2,1),(3,1)}║
║ 2 ║ a,b ║ 1 ║ {(1,1)} ║
║ 2 ║ a,c ║ 1 ║ {(2,1)} ║
║ 2 ║ b,c ║ 1 ║ {(3,1)} ║
╚══════╩══════╩═════════╩═════════════╝
Кажется, она заполнена.Если с SQL это слишком сложно, я могу игнорировать столбец lst_cat .
Есть ли способ получить значения Pair и cnt_CAT с помощью SQL ??