簡體   English   中英

查詢以分隔,然后計算PostgreSQL中逗號分隔值的字段

[英]Query to separate, then count a field of comma separated values in postgresql

我在postgresql中有一個表,其開始如下:

car_id  part_ids     total_inventory
------  --------     ----------
10134   101,506,589  50
12236   201,506,101  20
78865   201,399,304  10

我正在嘗試編寫一個查詢和/或視圖,該查詢和/或視圖將逗號分隔每個part_id,將每個part_id的總total_inventory計數在一起,然后將所有part_id包括在這樣的單個列中:

part_ids total_inventory
-------- ----------
101      70
506      70   
589      50
201      30
399      10
304      10

我試過在part_ids列上使用unnest(string_to_array)以獲得最終結果-但運氣還不算太高。

有人有想法么? 感謝您的幫助!

附言:這是我的第一個問題-任何建議/編輯,請讓我知道

這樣的事情應該工作

select p.part_id, 
       sum(t.total_inventory) as total_inventory
from parts t
  cross join lateral unnest(string_to_array(part_ids, ',')::int[]) as p(part_id)
group by p.part_id

在線示例: http : //rextester.com/NVTCG56767

嘗試這個:

WITH X AS 
(
    SELECT car_id, UNNEST(REGEXP_SPLIT_TO_ARRAY(part_ids, ',')) AS part_ids, total_inventory FROM parts
)
SELECT part_ids, SUM(total_inventory) AS total_inventory FROM X GROUP BY part_ids
ORDER BY total_inventory DESC;

第一步,我創建一個臨時表來保存未嵌套的值。

然后,我將part_id分組並對其相關的total_inventory求和。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM