2013-08-01 30 views
2

有字符串數組PostgreSQL的排序陣列通過字中的每個元件

ARRAY['CAT','CAT DOG CAT','DOG Cat']

現在我想排序在每個元件的單詞計數此數組。我已經嘗試過但不能取得任何成功。

我想這個輸出

ARRAY['CAT DOG CAT','DOG CAT','Cat']

我怎樣才能做到這一點?

+0

哪裏''Cat''貓來自於輸出。輸入中沒有這樣的元素。 –

回答

1

這並不感到相當笨拙,但現在我不能想到一個簡單的解決方案:

with val (col) as (
    values (ARRAY['CAT','CAT DOG CAT','DOG Cat']) 
), word_list as (
    select unnest(col) as pc 
    from val 
), wc as (
    select array_length(string_to_array(pc, ' '),1) as word_count, pc 
    from word_list 
) 
select array_agg(pc order by word_count desc) 
from wc; 
+0

其偉大。謝謝 –

相關問題