Я хочу передать значения, содержащиеся в переменных, в качестве входных данных в запрос postgresql, используя R.
В настоящее время я слежу за тем, что приводит в качестве примера:
https://db.rstudio.com/best-practices/run-queries-safely/
Using a parameterised query with DBI requires three steps.
You create a query containing a ? placeholder and send it to the database with dbSendQuery():
airport <- dbSendQuery(con, "SELECT * FROM airports WHERE faa = ?")
Use dbBind() to execute the query with specific values, then dbFetch() to get the results:
dbBind(airport, list("GPT"))
dbFetch(airport)
## faa name lat lon alt tz dst
## 1 GPT Gulfport-Biloxi 30.40728 -89.07011 28 -6 A
Once you’re done using the parameterised query, clean it up by calling dbClearResult()
dbClearResult(airport)
Вот мои текущие настройки.
install.packages("RPostgres")
#https://github.com/r-dbi/RPostgres
require(RPostgres)
require(DBI)
require(tidyr)
# RPostgreSQL::PostgreSQL()
# make connection
con <- dbConnect(RPostgres::Postgres(), dbname = 'test',
host = 'mydbtest.com',
port = 1234, # or any other port specified by your DBA
user = 'test',
password = 'test')
rs = dbGetQuery(con, "select count(*),state from sales where created > ? and created < ? group by state")
Что я хочу сделать:
Передайте две даты в качестве входных данных для запроса.
Ошибка, которую я получаю:
> rs = dbGetQuery(prod_con, "select count(*),state from sales where created > ? and created < ? group by state")
Error in result_create(conn@ptr, statement) :
Failed to prepare query: ERROR: syntax error at or near "and"
LINE 1: ...count(*),state from sales where created > ? and create...
Question1
Как мне обойти эту ошибку и чем она вызвана? Я пользуюсь? заполнитель, как указано в примере.
Вопрос 2
Как передать несколько значений двум ?
с
как это
dbBind (con, list ("2019-06-21", "2019-06-22"))?
Ссылки:
как передать значение, хранящееся в переменной r, в столбец where в условии запроса postgresql в R
RPostgreSQL - Передача параметра в R в запрос в RPostgreSQL