其他業(yè)務返回的幾個分數(shù)存在一個字段中,并用逗號分割。最近出了一個分析,要分析各個緯度得分的平均值,因為數(shù)據(jù)很多,不能都取到內(nèi)存中計算,只能用數(shù)據(jù)庫處理。下面是處理方法(暫時解決方案):
select
score.id, sum(score.score_array[1]::int) / count(1) as score1
from(
select id, string_to_array(score_list_array, ',') as score_array
from score
) score
group by score.id
顯示某個緯度的結果:
掌握程度
類型轉換 ::int 在有的ORM中會報錯,要改下寫法:
cast (score.score_array[1] as integer)
string_to_array函數(shù)說明:
<pre>
string_to_array(列名, 分割符),如:
2,3,4 分隔符使用 ,
2;3;4 分隔符使用 ;
</pre>
另,轉后的數(shù)組下標從1開始