[英]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.