在 Oracle 中使用 LISTAGG 函数
Using LISTAGG function in Oracle
我有两个table
category
--------
id product seq_num
cat12 prod12 0
cat23 prod12 1
cat34 prod12 2
prod
-----
sku prod seq_num
sku123 prod12 0
sku234 prod12 1
sku345 prod12 2
我正在尝试使用 LISTAGG 函数并带来如下输出:
output
------
skuid prod catids
sku123 prod12 cat12,cat23,cat34
sku234 prod12 cat12,cat23,cat34
sku345 prod12 cat12,cat23,cat34
当我单独使用类别 table 时,我能够使用 LISTAGG 并正确聚合输出(没有 skuid)
使用以下查询:
SELECT product,LISTAGG(id, ',')
WITHIN GROUP (ORDER BY id) AS catids
FROM category
GROUP BY product;
但我无法将其与 prod table 一起加入并获得所需的输出。
请帮忙。
加入后即可:
SELECT s.sku,t.product,
LISTAGG(t.id, ',') WITHIN GROUP (ORDER BY id) AS catids
FROM category t
INNER JOIN prod s
ON(t.product = s.prod)
GROUP BY t.product,s.sku;
您可以这样写查询:
SELECT p.sku "skuid", c.product "prod",
LISTAGG(c.id, ',') WITHIN GROUP (ORDER BY id)
OVER (PARTITION BY c.product) AS catids
FROM category c
INNER JOIN prod p
ON c.product = p.prod
ORDER BY "skuid", c.product;
你也可以看看这个;
it is more complicated version of usage together of listagg and join functions
我有两个table
category -------- id product seq_num cat12 prod12 0 cat23 prod12 1 cat34 prod12 2 prod ----- sku prod seq_num sku123 prod12 0 sku234 prod12 1 sku345 prod12 2
我正在尝试使用 LISTAGG 函数并带来如下输出:
output ------ skuid prod catids sku123 prod12 cat12,cat23,cat34 sku234 prod12 cat12,cat23,cat34 sku345 prod12 cat12,cat23,cat34
当我单独使用类别 table 时,我能够使用 LISTAGG 并正确聚合输出(没有 skuid)
使用以下查询:
SELECT product,LISTAGG(id, ',') WITHIN GROUP (ORDER BY id) AS catids FROM category GROUP BY product;
但我无法将其与 prod table 一起加入并获得所需的输出。 请帮忙。
加入后即可:
SELECT s.sku,t.product,
LISTAGG(t.id, ',') WITHIN GROUP (ORDER BY id) AS catids
FROM category t
INNER JOIN prod s
ON(t.product = s.prod)
GROUP BY t.product,s.sku;
您可以这样写查询:
SELECT p.sku "skuid", c.product "prod",
LISTAGG(c.id, ',') WITHIN GROUP (ORDER BY id)
OVER (PARTITION BY c.product) AS catids
FROM category c
INNER JOIN prod p
ON c.product = p.prod
ORDER BY "skuid", c.product;
你也可以看看这个; it is more complicated version of usage together of listagg and join functions