繼馬特的回答之后:Split column into multiple rows in Postgres
我想根據單元格中的字符將一行取消嵌套為多行,但是我還想包含一個計數列,其中包含一行被取消嵌套的次數。
我要這個:
name | id
----------------------- ------
alpha, bravo, charlie | 1
yankee, xray | 2
hotel | 3
indigo | 4
變成這樣:
name | id | count
----------------------- ------ -------
alpha | 1 | 3
bravo | 1 | 3
charlie | 1 | 3
yankee | 2 | 2
xray | 2 | 2
hotel | 3 | 1
indigo | 4 | 1
最初的未嵌套查詢將是:
SELECT unnest(string_to_array(name, ', ')) as name, id
FROM table
uj5u.com熱心網友回復:
您可以使用cross join帶有正則運算式的 a:
select k, t.id, cardinality(regexp_split_to_array(t.name, ', '))
from tbl t cross join regexp_split_to_table(t.name, ', ') k
見小提琴。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/421792.html
標籤:
