我想要的是为每个 ID 创建第 2 列的 DISTINCT 对并按计数排列它们。
让我们以此表为例:
CREATE TABLE mytable
(`ID` int, `C2` varchar(1), `C3` varchar(2))
;
INSERT INTO mytable
(`ID`, `C2`, `C3`)
VALUES
(1, 'A',' a1'),
(1, 'B', 'b1'),
(2, 'A', 'a2'),
(3, 'A', 'a3'),
(3, 'C', 'c3'),
(3, 'A', 'a4'),
(4, 'A', 'a1'),
(4, 'B', 'b4'),
(4, 'A', 'a2'),
(4, 'D', 'd1');
对于 1,pair 将是 AB。
对于 2,一个将不存在。
对于 3,pair 将是 AC。
对于 4,对将是 AB、AD 和 BD。
所以输出将是:
| Pair | Cnt |
| A-B | 2 |
| A-C | 1 |
| A-D | 1 |
| B-D | 1 |
这是我们可以在 SQL 中使用类似的东西GROUP_CONCAT
吗?
几天来我一直在思考这个问题,但仍然想不出一个简单的解决方案。
谢谢!