BigQuery:按另一列分组计算列中Null值的占比
嘿,这事儿超简单!你只需要用GROUP BY子句按country_code分组,结合你已经用到的SAFE_DIVIDE和COUNTIF函数,就能一次性获取所有国家对应的store_code空值占比,不用逐个国家单独查询。
完整的查询语句
SELECT SAFE_DIVIDE(COUNTIF(store_code IS NULL), COUNT(1)) AS pct_null_store_code, country_code FROM your_table_name -- 记得把这里替换成你的实际表名 GROUP BY country_code ORDER BY country_code; -- 可选排序,让结果展示更规整
各部分作用说明
GROUP BY country_code:把数据按国家代码拆分成独立分组,确保每个国家的统计结果单独计算COUNTIF(store_code IS NULL):统计每个分组内store_code为空的记录数量COUNT(1):统计每个分组的总记录数SAFE_DIVIDE:避免出现除以0的报错(如果某个国家无任何记录,会返回NULL而非直接报错)
执行后的预期结果
完全匹配你想要的输出:
| pct_null_store_code | country_code |
|---|---|
| 0.5 | FR |
| 0.0 | GB |
内容的提问来源于stack exchange,提问作者Mawu Ena
相关产品推荐
相关产品推荐

