繁体   English   中英

按条件分组的雪花计数

[英]Snowflake Count Group By With Condition

我需要测量“每个 Object 的总查询失败数/每个对象的总查询数”的比率

我的数据如下所示。

查询编号 object 地位
1个 一种 成功
2个 一种 失败
3个 一种 失败
4个 b 成功
5个 b 失败

我可以使用下面的方法来衡量每个 object 的总失败数/总失败数,例如

select
object
count(distinct query_id) as num_distinct_queries
ratio_to_report(count(distinct query_id) over () as percent_of_total_fails
from my_table
where status='fail'
group by object
order by 3
object num_distinct_queries percent_of_total_fails
一种 2个 0.666666
b 1个 0.333333

我想实现类似的目标:

object num_distinct_queries 失败次数 percent_of_fails_per_table
一种 3个 2个 0.666666
b 2个 1个 0.5

任何建议如何实现第二个选项? 每 object 的总失败数/每 object 的总查询数。

使用COUNT_IF执行条件聚合:

select object,
  count(distinct query_id) as num_distinct_queries,
  count_if(status='fail') AS num_fails,
  count_if(status='fail')/count(*) as percent_of_total_fails
from my_table
group by object
order by 3;

Output:

在此处输入图像描述

数据库<>小提琴演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM