有字符串数组
ARRAY['CAT','CAT DOG CAT','DOG Cat']
现在我想根据每个元素中的单词数对这个数组进行排序。我试过了,但没有成功。
我想要这个输出
ARRAY['CAT DOG CAT','DOG CAT','Cat']
我该怎么做?
最佳答案
这确实感觉很笨拙,但我现在想不出更简单的解决方案:
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;
关于postgresql-按每个元素中的单词对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991423/