获取 Snowflake SQL 中布尔列的百分比真值

Get the percentage true of a boolean column in Snowflake SQL

Snowflake SQL 中是否有获取布尔列百分比的函数?

例如,如果我的数据如下所示:

id category boolean
1 a true
2 a false

我想使用类似 RATIO_TO_REPORT() 的东西来获得:

category pct
a 0.50

一个想法是在 CTE 中从布尔值创建一个数字列,然后用它来生成一个 pct,但是,我有很多数据,所以想知道是否有更快的方法(即一些本地 sql我缺少的功能或方法)。

此外,我想解决具有 1 个以上分组列(例如 category2)和 1 个以上布尔列(例如 boolean2)的类别

有条件地计数并除以总计数:

select category, count_if(boolean) / count(*)
from mytable
group by category
order by category;