【发布时间】:2021-02-14 06:47:52
【问题描述】:
我想要的是为每个 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,对将是 A-B。
对于 2,一个将不存在。
对于 3,对将是 A-C。
对于 4,对将是 A-B、A-D 和 B-D。
所以输出将是:
| Pair | Cnt |
| A-B | 2 |
| A-C | 1 |
| A-D | 1 |
| B-D | 1 |
这是我们可以在 SQL 中使用 GROUP_CONCAT 之类的东西吗?
几天来我一直在思考这个问题,但仍然想不出一个简单的解决方案。
谢谢!
【问题讨论】:
标签: sql group-by count group-concat sql-server-group-concat