postgresql按照逗號分割字段,并統計數量和求和
- postgresql按照逗號分割字段,并統計數量和求和
postgresql按照逗號分割字段,并統計數量和求和
SELECT
ucd, p ,tm, step, unitcd, tm_end
from
resource_calc_scene_rain_bound_value_plus
where scprod_id = 13529
ORDER BY ucd asc
postgresql中字段p字段存儲的數據為0.0,0.0,0.0,0.0,0.0,0.2,0.0,0.0,0.4,0.7,1.0,1.1,1.1,1,sql語句實現按照逗號分割,統計p的數量,并對p求和,在原來sql基礎上增加輸出兩列pcount和psum。
要在PostgreSQL中修改您的SQL查詢,使其能夠統計p字段中逗號分隔的值的數量(pcount)和對這些值求和(psum),您可以使用string_to_array函數和unnest函數。以下是修改后的SQL語句:
SELECT ucd, p, tm, step, unitcd, tm_end,array_length(string_to_array(p, ','), 1) AS pcount,(SELECT SUM(CAST(trim(value) AS float)) FROM unnest(string_to_array(p, ',')) AS value) AS psum
FROM resource_calc_scene_rain_bound_value_plus
WHERE scprod_id = 13529
ORDER BY ucd ASC
這個查詢做了以下操作:
使用string_to_array(p, ‘,’)將逗號分隔的字符串轉換為數組
使用array_length()函數獲取數組長度作為pcount
使用子查詢和unnest()函數展開數組,然后對每個值進行求和計算psum
保留原始查詢的所有其他字段和排序
注意:如果p字段中的某些值可能有空格,我添加了trim()函數來確保正確處理。