TrinoUserError (type=USER_ERROR, name=SYNTAX_ERROR, message= "line 7:26: mismatched input 'COUNT'.



我正在使用dbt-trino,由于某种原因,它不理解直接在MySQL上执行的MySQL查询。在这个查询中,我想选择和分组上个月创建的记录。查询:

SELECT order_location, COUNT(*) as order_count
FROM {{ ref('x_stg_order_fields') }}
WHERE
created_at >=  DATE_FORMAT( CURRENT_DATE - INTERVAL 1 MONTH, '%Y/%m/01' )
AND
created_at <  DATE_FORMAT( CURRENT_DATE, '%Y/%m/01' )
GROUP BY order_location

虽然这个查询直接在MySQL上快速成功地工作,但当使用dbt运行时,它返回这个错误:

TrinoUserError(type=USER_ERROR, name=SYNTAX_ERROR, message="line 7:53: mismatched input 'COUNT'. Expecting: '*', <expression>")

这是否意味着dbt-trino不支持所有MySQL函数?

这个错误来自您的数据库,而不是dbt本身。dbt不会解析你的SQL命令,它只是把它们传递给你连接的数据库。

我的猜测是{{ ref('x_stg_order_fields' }}可能指的是一个包含语法错误的临时模型,或者可能是一个没有引用的名为count的字段?

您可以通过查看dbt试图在数据库中运行的SQL,通过检查项目中的target目录来确认或反驳这一点。具体来说,target/run/path/to/your_model.sql将显示正在执行的实际命令。您应该能够检查该文件中的第7行col53,并且您将看到trino出错的代码。

相关内容

最新更新