Error: No matching signature for function IF for argument types: BOOL. Supported signature: IF(BOOL, ANY, ANY)
Error: No matching signature for function IF for argument types: BOOL. Supported signature: IF(BOOL, ANY, ANY)
我正在尝试计算 "rating" 超过 9 的次数。使用 StandardSQLGoogle BigQuery 工作
我以前使用的是 CASE WHEN 函数,但想将其更改为 IF,因为只有一种情况。之前运行良好的代码:
SELECT
COUNT(CASE WHEN (survey_responses.survey_rating >= 9) THEN 1 ELSE NULL END)
AS survey_responses_num_positives
当前代码
SELECT
COUNT(IF(survey_responses.survey_rating >= 9),1,NULL)
AS survey_responses_num_positives
当前代码吐出错误:
No matching signature for function IF for argument types: BOOL. Supported signature: IF(BOOL, ANY, ANY) at [11:39]
不是很理解IF语句是BOOL值吗?对此有任何帮助将不胜感激。谢谢!
你放错了括号:
SELECT
COUNT(IF(survey_responses.survey_rating >= 9,1,NULL))
AS survey_responses_num_positives
IF
有 3 个参数,条件,如果为真,否则。
文档:
SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;
所以
IIF(survey_responses.survey_rating >= 9 ,1,NULL)
不确定这是否有效!所以让我知道
使用COUNTIF()
!
SELECT COUNTIF( survey_responses.survey_rating >= 9 ) AS survey_responses_num_positives
BigQuery 有这个 built-in 作为一个方便的功能。我推荐使用它。
我正在尝试计算 "rating" 超过 9 的次数。使用 StandardSQLGoogle BigQuery 工作
我以前使用的是 CASE WHEN 函数,但想将其更改为 IF,因为只有一种情况。之前运行良好的代码:
SELECT
COUNT(CASE WHEN (survey_responses.survey_rating >= 9) THEN 1 ELSE NULL END)
AS survey_responses_num_positives
当前代码
SELECT
COUNT(IF(survey_responses.survey_rating >= 9),1,NULL)
AS survey_responses_num_positives
当前代码吐出错误:
No matching signature for function IF for argument types: BOOL. Supported signature: IF(BOOL, ANY, ANY) at [11:39]
不是很理解IF语句是BOOL值吗?对此有任何帮助将不胜感激。谢谢!
你放错了括号:
SELECT
COUNT(IF(survey_responses.survey_rating >= 9,1,NULL))
AS survey_responses_num_positives
IF
有 3 个参数,条件,如果为真,否则。
文档:
SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;
所以
IIF(survey_responses.survey_rating >= 9 ,1,NULL)
不确定这是否有效!所以让我知道
使用COUNTIF()
!
SELECT COUNTIF( survey_responses.survey_rating >= 9 ) AS survey_responses_num_positives
BigQuery 有这个 built-in 作为一个方便的功能。我推荐使用它。