我试图知道事件发生的频率,并且通过将布尔值设置为“TRUE”并且非出现将其设置为“FALSE”来记录我的数据库中此事件的发生。
但是当我尝试使用avg()函数选择值时,它会返回以下错误: 错误:函数avg(布尔值)不存在
如何衡量活动频率,并在一段时间内保持良好表现?
谢谢。
若昂
答案 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);