私はこのテーブルを持っています
1 a d
1 a e
2 b f
2 b g
3 c h
3 c i
3 c j
3 c k
そして、私はこの結果を望んでいます
1 a d,e
2 b f,g
3 c h,I,j,k,l
私はこのテーブルを持っています
1 a d
1 a e
2 b f
2 b g
3 c h
3 c i
3 c j
3 c k
そして、私はこの結果を望んでいます
1 a d,e
2 b f,g
3 c h,I,j,k,l
私の知る限り、SQL-Serverにはそのための組み込みの方法はありませんが、を使用してFOR XML
そうすることができます:
SELECT
t1.col1,
t1.col2,
STUFF((
SELECT ', ' + t2.col3
FROM Table1 t2
WHERE t2.col1 = t1.col1
FOR XML PATH (''))
,1,2,'') AS Groups
FROM Table1 t1
GROUP BY t1.col1, col2;
これにより、次のことが得られます。
| COL1 | COL2 | GROUPS |
----------------------------
| 1 | a | d, e |
| 2 | b | f, g |
| 3 | c | h, i, j, k |
ただし、 MySQL には組み込み関数がありますGROUP_CONCAT()
。
SELECT
col1, col2, GROUP_CONCAT( col3 SEPARATOR ',') groups
FROM Table1
GROUP BY col1, col2;