获取 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;
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;