R 中使用的 SQL 代码中存在语法错误,未找到 row_number 函数
Syntax error in SQL code being used in R, no row_number function found
我正在使用 RSQLite
、DBI
和 dbplyr
软件包。我正在观看 TechTFQ 的 this YouTube video。
library(dbplyr)
library(RSQLite)
library(DBI)
mtcars <- tibble::as_tibble(mtcars, rownames = 'car')
sql_mtcars <- mtcars
con <- RSQLite::dbConnect(SQLite(), ":memory:")
dplyr::copy_to(con, sql_mtcars)
sql_mtcars_db <- tbl(con, "sql_mtcars")
sql_mtcars_db %>%
dplyr::select(car, mpg, wt) %>%
dplyr::show_query()
dbListTables(con)
我收到此行的语法错误。
DBI::dbGetQuery(con, '
SELECT *
row_number() over(partition by cyl) AS rn
FROM sql_mtcars
')
Error: near "row_number": syntax error
我确定我在这里写的 SQL 语法和我在 YouTube 视频中看到的一样,除了我使用的数据帧和我调用的变量。
我 运行 遇到的错误是什么?是 dbplyr SQL 没有完整的 SQL 动词范围,还是使用了不同的 SQL 语法?
我什至不确定如何找到要在此方法中使用的 SQL 语法的键。通过 ?DBI
、?dbplyr
或 ?RSQLite
寻求帮助并没有太大帮助,因为关于 SQL 动词的文档似乎并不多,而且我还没有找到一个非常全面的小插图来研究。
您似乎在 *
之后少了一个逗号。以下按预期工作:
DBI::dbGetQuery(con, '
SELECT *,
row_number() over(partition by cyl) AS rn
FROM sql_mtcars
')
注意在 *
之后和 row_number
之前添加一个逗号。
我正在使用 RSQLite
、DBI
和 dbplyr
软件包。我正在观看 TechTFQ 的 this YouTube video。
library(dbplyr)
library(RSQLite)
library(DBI)
mtcars <- tibble::as_tibble(mtcars, rownames = 'car')
sql_mtcars <- mtcars
con <- RSQLite::dbConnect(SQLite(), ":memory:")
dplyr::copy_to(con, sql_mtcars)
sql_mtcars_db <- tbl(con, "sql_mtcars")
sql_mtcars_db %>%
dplyr::select(car, mpg, wt) %>%
dplyr::show_query()
dbListTables(con)
我收到此行的语法错误。
DBI::dbGetQuery(con, '
SELECT *
row_number() over(partition by cyl) AS rn
FROM sql_mtcars
')
Error: near "row_number": syntax error
我确定我在这里写的 SQL 语法和我在 YouTube 视频中看到的一样,除了我使用的数据帧和我调用的变量。
我 运行 遇到的错误是什么?是 dbplyr SQL 没有完整的 SQL 动词范围,还是使用了不同的 SQL 语法?
我什至不确定如何找到要在此方法中使用的 SQL 语法的键。通过 ?DBI
、?dbplyr
或 ?RSQLite
寻求帮助并没有太大帮助,因为关于 SQL 动词的文档似乎并不多,而且我还没有找到一个非常全面的小插图来研究。
您似乎在 *
之后少了一个逗号。以下按预期工作:
DBI::dbGetQuery(con, '
SELECT *,
row_number() over(partition by cyl) AS rn
FROM sql_mtcars
')
注意在 *
之后和 row_number
之前添加一个逗号。