【发布时间】:2017-11-17 23:50:51
【问题描述】:
我需要一些关于 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
我想得到如下结果,包括计数和聚合字符串。
v1, 3, (v2,v4,v3)
v2, 1, (v7)
我认为这并不复杂,对我来说似乎需要一些时间 :) 如果有人熟悉这个,请给一些建议。
【问题讨论】:
-
其实很简单。看看你自己能不能做到。步骤是:先加入;然后 GROUP BY
B.b1,并在聚合中(在SELECT中)使用函数COUNT()和LISTAGG()。 话虽如此:您的 Oracle 版本是什么?LISTAGG()自 Oracle 11.2 以来才出现。如果您不知道自己的版本,请运行select * from v$version。
标签: sql oracle join count aggregate