我的要求是如果两个具有相同日期的表需要在单行中给出 eq 的输出
| Column A | Column B |
| -------- | -------- |
| Cell 1 | Cell 2 |
| Cell 3 | Cell 4 |
| Column AA | Column BB |
| -------- | -------- |
| Cell 1 | Cell 5 |
| Cell 3 | Cell 6 |
Output should be as
| Column A | Column B |
| -------- | -------- |
| Cell 1 | Cell 2,Cell 5 |
| Cell 3 | Cell 4,Cell 6 |
这可能吗
您需要
UNION
和GROUP BY
,如下:
SELECT colA, listagg(colB,',') WITHIN GROUP (order by colB) from
(SELECT colA, colB from table1
UNION
SELECT colAA, colBB from table2)
GROUP BY colA;
注意:使用 Oracle 特定语法。
在 Postgres 9+ 上,我们可以使用联合查询以及
STRING_AGG()
:
SELECT A, STRING_AGG(B, ',') AS B
FROM
(
SELECT A, B FROM T1
UNION ALL
SELECT AA, BB FROM T2
) t
GROUP BY A;