sql - 我收到 "Function not found: day at [5:84]"

标签 sql google-bigquery

SELECT   field_3103,
         Sum(
         CASE
                  WHEN field_3103 >=     Date(Extract(year FROM field_3103), Extract(month FROM field_3103), 1)
                  AND      field_3103 <= Date( Extract(year FROM field_3103), Extract(month FROM field_3103), Day(Last_day(field_3103))) THEN 1
                  ELSE 0
         END) AS new_listings,
         Sum(
         CASE
                  WHEN field_3102 >=     Date(Extract(year FROM field_3102), Extract(month FROM field_3102), 1)
                  AND      field_3102 <= Date(Extract(year FROM field_3102), Extract(month FROM field_3102), Day(Last_day(field_3102))) THEN 1
                  ELSE 0
         END) AS sold_listings
FROM     winter-agility-327715.properties_dataset.final_table
GROUP BY 1

此查询会产生以下错误消息:

"Function not found: day at [5:84]"

我的 SQL 中的语法错误也带有下划线,如以下屏幕截图所示:enter image description here

最佳答案

正如 @Thorsten 和 @Samuel 提到的,您收到此错误是因为 BigQuery 中没有 DAY 函数。 如果您想提取日期,可以使用以下语法:

EXTRACT(日期表达式中的日期)

有关 BigQuery 中日期函数的更多信息,请参阅此 documentation .

关于sql - 我收到 "Function not found: day at [5:84]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71807234/

相关文章:

mysql - 从没有键(唯一)列的表中删除重复项

sql - 合并两个父>子表集

SQL 将具有多个小数的字符串转换为整数

MySQL使用查询结果两次

sql - 如何重构此 SQL 查询?

google-cloud-platform - 在 BigQuery 中使用 MAX 值展平结果

google-bigquery - 创建一个包含两列类型 RECORD 的表

sql - BigQuery 连接三个表

google-bigquery - 如何使用 API 获取 BigQuery 中临时表的名称

google-bigquery - 如何检索与 BigQuery 作业关联的用户和 SQL 代码?