SQL 根据视图分组合并行

SQL combine rows based on group by in view

我有一个 table:

c1    c2
----------
A    B
A    C
X    P
X    Q

我如何创建一个将其显示为

的视图
c1    c2    c3
---------------
A    B    C
X    P    Q

您可以使用聚合:

select c1, min(c2) as c2, max(c2) as c3
from t
group by c1;

您可以自行加入 table:

select
  t1.c1, t1.c2, t2.c2 as c3
from tablename t1 inner join tablename t2
on t1.c1 = t2.c1 and t1.c2 < t2.c2

参见demo
结果:

| c1  | c2  | c3  |
| --- | --- | --- |
| A   | B   | C   |
| X   | P   | Q   |