在 RMySQL 中使用 CTE 语句时出错

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

我正在使用 RMySQL 运行一个连接到 AWS MySQL 数据库的查询,但我收到以下与使用 CTE 语句相关的错误:

Error in .local(conn, statement, ...) : 
  could not run statement: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE db.table
WITH CTE_1 AS (
SELECT variable
' at line 3

我知道 MySQL v8.0+ 支持 CTE 语句,但是 AWS DB 是 v8.0.32 以及我系统中安装的那个。我正在使用 R 4.2.2 和 Rstudio 2022.12.0.

当我从 MySQL Workbench 运行查询时,它工作得很好,只有在使用 R 时才会出现错误(我已经尝试过 RMySQL 和 RMaridaBD)。

任何想法可能是什么问题?

赞赏!

编辑:

下面是SQL语句的例子:

CREATE TABLE dbname.census_summary
WITH CTE_census AS (
SELECT state
      ,SUM(population) population
      ,SUM(CASE WHEN sex = "Male" THEN population ELSE 0 END) male_pop
      ,SUM(CASE WHEN sex = "Female" THEN population ELSE 0 END) female_pop
FROM dbname.census_data
GROUP BY state
),
CTE_covid AS (
SELECT state
      ,SUM(confirmed_cases) covid_cases
      ,SUM(deaths) covid_deaths
FROM dbname.covid_data
GROUP BY state
)
SELECT *
FROM CTE_census AS a
LEFT JOIN CTE_covid AS b
ON a.state = b.state

这就是我尝试在 R 中执行查询的方式:

library(RMySQL)
library(DBI)
library(readr)

con <- RMySQL::dbConnect(RMySQL::MySQL(),
                 host = "hostname",
                 user = "username",
                 password = "pass",
                 dbname = "dbname",
                 port = 3306)

query_exec <- dbGetQuery(con, statement = read_file('sql_file.sql'))
mysql sql r amazon-web-services common-table-expression
© www.soinside.com 2019 - 2024. All rights reserved.