2010-11-20 5 views
2

イベントが発生する頻度を知りたいと思い、データベース内のこのイベントの発生をブール値を 'TRUE'に設定して記録し、非発生を設定していますそれは「偽」になります。エラー:関数avg(ブール値)が存在しません

しかし、私は、関数の平均を(使用して値を選択しようとしています)、それは私に、このエラーを返します: ERROR:関数AVG(ブール値)は

どのように私はイベントの周波数を測定することができますが存在せず、いつか良いパフォーマンスを保つ?

ありがとうございます。

あなたがこれを行うことができジョアン

答えて

4

をこれは、あなたがintとしてキャスト場合は、int型の平均値を取得します0と1の

select avg(val::int); 
7

AVG(CASE WHEN myBooleanAttribute = TRUE THEN 1 ELSE 0 END) 
+2

AVG(myBooleanAttribute THEN 1 ELSE 0 END)も動作します – Tometzky

1

に値を強制します非常に有用ではありません。代わりに試してみてください:

select avg(val::int::float4); 
関連する問題