Snowflake SQL 编译错误:位置 XX 处的语法错误行 XX 意外 '('

Posted

技术标签:

【中文标题】Snowflake SQL 编译错误:位置 XX 处的语法错误行 XX 意外 \'(\'【英文标题】:Snowflake SQL compilation error: syntax error line XX at position XX unexpected '('Snowflake SQL 编译错误:位置 XX 处的语法错误行 XX 意外 '(' 【发布时间】:2019-12-17 15:16:17 【问题描述】:

在 Snowflake 上运行 SQL 查询时,我收到语法错误,我有 意外的 '('。下面是给我错误的代码。

,(EndOrder_time) - min(StartOrder_time) over (
    partition by EntryNumber, TechnicianEnterpriseID
    order by RouteDateTime rows between 1 preceding and current row
) day (4) to second as Repair_Time 

【问题讨论】:

【参考方案1】:

Snowflake 以这种方式计算时间戳差异:

DATEDIFF(SECONDS, StartOrder_time, EndOrder_time)

【讨论】:

【参考方案2】:

Snowflake 在 11 月添加了使用 + 和 - 进行日期数学运算的功能。 "day (4) to second" 不是 Snowflake 语法

【讨论】:

我前段时间看到了公告(和文档),但您无法从中获得几秒钟的时间。而且我只能使用DATE,而不是TIMESTAMP(类型错误)。可能是我的错。 好收获。我阅读了发行说明和文档,但似乎不支持时间戳。 实际上,文档说“date_or_time_expr1, date_or_time_expr2 必须是日期、时间、时间戳或可以计算为日期、时间或时间戳的表达式。值 date_or_time_expr1 是从 date_or_time_expr2 中减去。”但我无法使用TIMESTAMP...

以上是关于Snowflake SQL 编译错误:位置 XX 处的语法错误行 XX 意外 '('的主要内容,如果未能解决你的问题,请参考以下文章

Snowflake:SQL 编译错误:不是有效的 group by 表达式

将 CSV 文件从 S3 加载到 Snowflake 时出现 SQL 编译错误

SQL 编译错误:位置 56 处的错误第 2 行无效标识符

SQL 编译错误:从 S3 复制到 Snowflake 时,JSON 文件格式只能生成一列类型变量或对象或数组

雪花; SQL 编译错误:无效的对象类型:GET_DDL 上的“EXTERNAL_TABLE”(“DATABASE”,“MyDb”)

无法选择作为 SQL 关键字的列名