एक "dplyr
-only" समाधान यह होगा
tbl(my_con, "my_table") %>%
filter(batch_name %like% "batch_A_%") %>%
collect()
पूर्ण reprex :
suppressPackageStartupMessages({
library(dplyr)
library(dbplyr)
library(RPostgreSQL)
})
my_con <-
dbConnect(
PostgreSQL(),
user = "my_user",
password = "my_password",
host = "my_host",
dbname = "my_db"
)
my_table <- tribble(
~batch_name, ~value,
"batch_A_1", 1,
"batch_A_2", 2,
"batch_A_2", 3,
"batch_B_1", 8,
"batch_B_2", 9
)
copy_to(my_con, my_table)
tbl(my_con, "my_table") %>%
filter(batch_name %like% "batch_A_%") %>%
collect()
#> # A tibble: 3 x 2
#> batch_name value
#> * <chr> <dbl>
#> 1 batch_A_1 1
#> 2 batch_A_2 2
#> 3 batch_A_2 3
dbDisconnect(my_con)
#> [1] TRUE
यह काम करता है क्योंकि कोई भी फ़ंक्शन जो dplyr नहीं जानता है कि अनुवाद कैसे किया जाएगा, जैसा है, देखें ?dbplyr::translate\_sql
।
हैट-टिप टू @PaulRougieux उनकी हालिया टिप्पणी के लिएयहां