sql - bigQuery 抛出“除以零:0 / 0”错误
问题描述
我正在使用 bigquery 按列值的频率计算百分比。但是,某些值可能为零,因此查询肯定会返回错误
(division by zero: 0 / 0)
在这种情况下如何应用一种 IFERROR(x/y,null) ?所以查询将返回空值而不是错误?
SELECT
User_ID,
ROUND(SUM(CASE WHEN Name LIKE '%MIKE%' THEN 1 ELSE 0 END) / COUNT(Name) * 100 ,1) AS Percentage_of_MIKE,
FROM
table
GROUP BY
User_ID
试过:
ROUND(SAFE_DIVIDE(SUM(CASE WHEN Name LIKE '%MIKE%' THEN 1 ELSE 0 END) / COUNT(Name) * 100 ,1)) AS Percentage_of_MIKE,
解决方案
在这种情况下,您可以只使用SAFE_DIVIDE函数
像下面的例子
ROUND(SAFE_DIVIDE(SUM(CASE WHEN Name LIKE '%MIKE%' THEN 1 ELSE 0 END), COUNT(Name) * 100) ,1) AS Percentage_of_MIKE
推荐阅读
- reactjs - 如何在 React Semantic UI 中使用 List 组件“items”道具?
- c - 我们如何在#define 语句中使用联合和结构
- r - 如何有效地为 stan 数据块指定一个大的预测矩阵
- python - 如何向 HyperlinkedModelSerializer 添加额外数据?
- ios - iOS:UIAlertController 上的 textField 成为当前警报时的第一响应者
- php - wp_query 搜索结果不是预期的
- python - 如何修复使用 MinMaxScaler 转换的数据与实际数据之间的排序?
- vb.net - 获取特定的 excel(.xls) 单元格
- php - Php 关联数组函数,查找由 id 值重复和在数组中生成的非重复值
- php - 在 PHP 和 SQL 中从数据库中删除记录