我需要一些sql帮助,数据如下所示。
table A (a1, a2, a3)
table B (b1, b2)
A.a1和B.b1互相引用。我想要的是,对于唯一的B.b1,我想得到A.a2,它可以通过引用A.a1来获得多个记录。 例如,
A
v1, v2, v3
v1, v4, v5
v1, v3, v6
v2, v7, v8
B
v1, v9
v2, v10
v1, v11
我想得到如下结果,包括count和聚合字符串。
v1, 3, (v2,v4,v3)
v2, 1, (v7)
我认为这并不复杂,对我来说似乎需要一些时间:) 如果有人熟悉这一点,请提供一些建议。
答案 0 :(得分:1)
试试这个:
select data.a1,
count(data.a1) as count,
LISTAGG(data.a2,',') WITHIN GROUP(order by data.a2 desc) as third_column from
(select A.a1,A.a2 from A where A.a1 in (select DISTINCT B.b1 from B )) data
group by data.a1;