2017-10-10 58 views
0

我有以下行:按秩序和有序的獨特的項目(PostgreSQL的)計數從文本的ARRAY_AGG的不同字段

order items_ordered 
1  'tshirt,shorts' 
1  'shoes,flipflops,'shorts' 
2  'dress' 

我想組。

結果:

1 4 
2 1 

訂購1有因 '的T恤,短褲,鞋,拖鞋' 四個獨特的項目。

我想:

select 

distinct array_agg(regexp_split_to_array(items_ordered, ',')) 

from ALL_FINAL 
group by order 

錯誤:

cannot accumulate arrays of different dimensionality

+0

你到目前爲止嘗試過什麼?什麼不工作? – jmelesky

+0

是什麼問題? –

回答

0

你可以使用LATERAL結合嵌套的數組:

select "order", COUNT(DISTINCT c) AS cnt 
from ALL_FINAL 
,LATERAL (SELECT unnest(regexp_split_to_array(items_ordered, ','))) s(c) 
group by "order"; 

Rextester Demo


無論如何,你應該重新考慮你的模式設計。將值存儲爲CSV不是最好的選擇。

相關問題