我有这个表(表名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)。
因此,对于ID(1,a)和ID(1,b),cnt_CAT = 2
我想要得到什么表:
╔══════╦══════╦═════════╦═════════════╗
║ 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 列。
是否可以通过SQL获取Pair和cnt_CAT值?