小编swm*_*swm的帖子

bigQuery 抛出“除以零:0 / 0”错误

我正在使用 bigquery 按列值的频率计算百分比。但是,某些值可能为零,因此查询肯定会返回错误

(division by zero: 0 / 0)
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何应用 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
Run Code Online (Sandbox Code Playgroud)

尝试过:

ROUND(SAFE_DIVIDE(SUM(CASE WHEN Name LIKE '%MIKE%' THEN 1 ELSE 0 END) / COUNT(Name) * 100 ,1)) AS Percentage_of_MIKE,
Run Code Online (Sandbox Code Playgroud)

sql select group-by count google-bigquery

12
推荐指数
1
解决办法
5万
查看次数

按 BigQuery 中列段的最大值返回列名称

我的查询应该根据列的最大值返回列名称。我尝试使用 CASE WHEN 来解决这个问题。但不知怎的,这个错误发生了,可能是因为我返回列的名称而不是列本身的值:

No matching signature for operator CASE; all THEN/ELSE arguments must be coercible to a common type but found: INT64, STRING; actual argument types (WHEN THEN) ELSE: (BOOL STRING) (BOOL INT64) INT64 at [3:5]
Run Code Online (Sandbox Code Playgroud)

我的代码是:

SELECT
ID,
    CASE
        WHEN col1 >= col2 AND col1 >= col3 AND col1 >= col4 AND col1 >= col5 THEN 'col1 '
        WHEN col2 >= col1 AND col2 >= col3 AND col2 >= col4 AND col2 >= col5 THEN 'col2 '
        ELSE …
Run Code Online (Sandbox Code Playgroud)

sql google-bigquery

1
推荐指数
1
解决办法
1226
查看次数

标签 统计

google-bigquery ×2

sql ×2

count ×1

group-by ×1

select ×1