我想要的是对任何单个事件计数与true(出席),false(不出席)和NULL相对应的数组元素。PostgreSQL计数数组值
编辑:
我刚刚意识到阵列不表现为我在PSQL想到,这么一个简单的
userconfirm bool[]
就足够。不过,我仍然有计算true/false/null值的相同问题。我将尝试编辑下面的问题以匹配这个新的约束。我对任何错误表示歉意。
我有一列如
userconfirm bool[]
凡userconfirm[314] = true
将意味着用户#314将出席。 (false =没有参加,NULL =没有读取/ etc)。
我不确定这是用于此功能的最佳解决方案(用户宣布他们出席某个事件),但我在此列上的聚合函数遇到问题。
select count(*) from foo where id = 6 AND true = ANY (userconfirm);
这只返回1,并试图谷歌“计数阵列”没有任何有用的东西。
我该如何计算单个事件的不同值?
这似乎工作。我可以用'f'来反转它以得到相反的结果。我不认为你会知道如何获得真实的索引列表?例如。它返回'1,4,314'。 – TLP 2012-02-04 23:06:07
@TLP:我认为你可以用'unnest'和'generate_series'组合来完成它; 'unnest'打开数组和'generate_series'来提供索引号。然后'array_agg'将它们放回到一起。 – 2012-02-04 23:17:55
@TLP:或者'rank()over'来提供索引。 – 2012-02-04 23:25:47