[英]SQL query to group multiple values
你能告诉我如何为以下要求构建 sql 查询吗:我有 2 个表:
表一:
col1 | Col2
------------
1 | a
2 | b
表 B:
Col1 | Col2
-----------
1 | 10
2 | 20
a | 30
b | 40
我需要这样的输出:
Col1 | Col2
------------
1,a | 10,30
2,b | 20,40
任何人都可以帮助我。 谢谢
你可以使用这个:
SELECT CONCAT(t1.col1, ' , ', t2.col1) AS Col1, CONCAT(t1.col2, ' , ', t2.col2) AS Col2
from
(select t1.col1, t2.col2 from tableA t1, tableB t2
where t1.col1 = t2.col1) as t1,
(select t1.col1 as col3, t2.col1, t2.col2 from tableA t1, tableB t2
where t1.col2 = t2.col1) as t2
where t1.col1 = t2.col3;
SQL小提琴在这里: http ://sqlfiddle.com/#!9/459ae69/25
SELECT CONCAT(CONCAT(A."Col1", ' , '), A."Col2") AS Col1,
LISTAGG(B."Col2", ', ') WITHIN GROUP (ORDER BY B."Col1") Col2
FROM TableA A
JOIN TableB B
ON A."Col1" = B."Col1"
OR A."Col2" = B."Col1"
GROUP BY CONCAT(CONCAT(A."Col1", ' , '), A."Col2")
;
输出
| COL1 | COL2 |
|-------|--------|
| 1 , a | 10, 30 |
| 2 , b | 20, 40 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.