错误:函数avg(布尔值)不存在

时间:2010-11-20 12:18:43

标签: sql postgresql

我试图知道事件发生的频率,并且通过将布尔值设置为“TRUE”并且非出现将其设置为“FALSE”来记录我的数据库中此事件的发生。

但是当我尝试使用av​​g()函数选择值时,它会返回以下错误: 错误:函数avg(布尔值)不存在

如何衡量活动频率,并在一段时间内保持良好表现?

谢谢。

若昂

3 个答案:

答案 0 :(得分:8)

你可以这样做:

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

答案 1 :(得分:7)

这会将值强制转换为0和1

select avg(val::int);

答案 2 :(得分:3)

如果你转换为int,你将得到一个int平均值,这不是很有用。而是尝试:

select avg(val::int::float4);