SQL-запрос для группировки нескольких значений - PullRequest
0 голосов
/ 17 октября 2018

Можете ли вы дать мне, как построить SQL-запрос для следующих требований: у меня есть 2 таблицы:

Таблица A:

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

Может кто-нибудь помочь мне, пожалуйста.Спасибо

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

SQL DEMO

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 |
0 голосов
/ 17 октября 2018

Вы можете использовать это:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...