Sql IFNULL和date
我有下面的select语句Sql IFNULL和date,sql,google-bigquery,Sql,Google Bigquery,我有下面的select语句 FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date, 如果没有可用的日期,我希望它返回一个字符串或整数 我试过这个例子: ifnull(FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date, 但出现
FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date,
如果没有可用的日期,我希望它返回一个字符串或整数
我试过这个例子:
ifnull(FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date,
但出现以下错误:
参数类型:DATE,INT64的函数IFNULL没有匹配的签名。支持的签名:IFNULL(ANY,ANY)在[26:9]了解有关BigQuery SQL函数的更多信息。
我该怎么办 是否要合并()
看起来您希望避免结果中出现空值 显然,在同一输出列中不能将日期类型与字符串或INT64混合使用 所以您需要将所有内容转换为字符串,如下面的示例所示
IFNULL(CAST(FIRST_VALUE(DATE) OVER (PARTITION BY client_ID ORDER BY DATE ASC) AS STRING), 'whatever default value you have in mind') AS first_conversion_date
也许这两个参数的类型必须相同?虽然它说ANY,ANY,也许它的意思是X,X,其中X是ANY,但是你必须使用相同的类型吗?或者至少是一种强制类型?我只是在猜测,别管我了。
IFNULL(CAST(FIRST_VALUE(DATE) OVER (PARTITION BY client_ID ORDER BY DATE ASC) AS STRING), 'whatever default value you have in mind') AS first_conversion_date