首页 > 解决方案 > 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,

标签: sqlselectgroup-bycountgoogle-bigquery

解决方案


在这种情况下,您可以只使用SAFE_DIVIDE函数

像下面的例子

ROUND(SAFE_DIVIDE(SUM(CASE WHEN Name LIKE '%MIKE%' THEN 1 ELSE 0 END), COUNT(Name) * 100) ,1) AS Percentage_of_MIKE

推荐阅读