我有表cname
CREATE TABLE cname
(
cid integer,
cname text,
rel text
)
这些是其中的一些数据。
INSERT INTO cname VALUES (1, 'name1', 'a1');
INSERT INTO cname VALUES (2, 'surname1', 'a1');
INSERT INTO cname VALUES (3, 'name2', 'b2');
INSERT INTO cname VALUES (4, 'surname2', 'b2');
它看起来像这样,
rel
1 和 2 的cid
列数据相同
那么如何在cid
(1,2)
中连接这两个名称
期待reslut
cname
-----
surname1_name1
注意:在连接字段cname
时,姓氏应首先出现,即在rel
a1 组
cid(2)的最大值应该首先考虑。
答案 0 :(得分:0)
根据您的标准,您可以通过两种方式实现这一目标。
选项1 - 使用CTE
with cte as (
select cname,rel from cname order by cid desc
)
select string_agg(cname,'.') full_name from cte group by rel
选项2 - 在 FROM Clause
上使用子选择select string_agg(cname,'.') full_name
from (select cname,rel from cname order by cid desc) t
group by rel