我想要的是對任何單個事件計數與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