duckdb 物化 CTE 语法错误

问题描述 投票:0回答:1

我正在尝试使用 物化 CTE 创建查询,但出现语法错误(在本例中使用 R,但我希望问题与 R 无关......)。

抛出错误的查询如下所示(非常接近文档中给出的示例)

WITH avg_cte AS MATERIALIZED (
  SELECT carrier, MEAN(dep_delay) AS avg_dep_delay
  FROM flights
  GROUP BY carrier
)
SELECT * FROM avg_cte

带有 R 的 MWE 看起来像这样

cc <- DBI::dbConnect(duckdb::duckdb())
DBI::dbWriteTable(cc, "flights", nycflights13::flights)

q <- "WITH avg_cte AS MATERIALIZED (
  SELECT carrier, MEAN(dep_delay) AS avg_dep_delay
  FROM flights
  GROUP BY carrier
)
SELECT * FROM avg_cte
"
DBI::dbGetQuery(cc, q)
#> Error: Parser Error: syntax error at or near "MATERIALIZED"
#> LINE 1: WITH avg_cte AS MATERIALIZED (
r common-table-expression duckdb
1个回答
0
投票

MATERIALIZE
关键字是0.9.0中新增的,但当前的R包仍然只有0.8.1-3。 “前沿”安装说明应该允许同时安装0.9.0。

install.packages('duckdb', repos=c('https://duckdb.r-universe.dev', 'https://cloud.r-project.org'))
© www.soinside.com 2019 - 2024. All rights reserved.