如何在postgres数组中按多个id分组

时间:2015-11-05 17:35:47

标签: sql ruby-on-rails postgresql

我试图根据Postgres数组中项目的nubmer计数选择一行(在Postgres 9.4中表示为文本字段),并且能够在Rails 4.2中选择/分组

我有以下表格:

 queryable_id | liked_count | users_who_like_ids 
--------------+-------------+--------------------
         2376 |           3 | {1,80,78,101, 188}
        18771 |           1 | {78,101, 123,125}
         1790 |           1 | {78}
         2257 |           1 | {78}

例如,我想说用user_who_like_ids选择和订购

select * from items group by count(users_who_like_ids) where users_who_like_ids include (78,123,125)

我该如何进行此查询?在rails中是否支持这种类型的查询?

编辑1

这是users_who_like_ids

 users_who_like_ids      | text[]                      | default '{}'::text[]

编辑2

看起来这种方式有用:

select queryable_id, liked_count, users_who_like_ids  from  queryables where users_who_like_ids  @> ARRAY['1','80'];

但这需要1和80

1 个答案:

答案 0 :(得分:1)

我想,您正在寻找array_length()

select
  *
from 
  items
where
  users_who_like_ids @> ARRAY[78,123,125]
group by
  array_length(users_who_like_ids) 

请注意,where子句始终属于group by子句。