PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chuyển các hàm SQL trong hàm lọc dplyr trên cơ sở dữ liệu


Một "dplyr -chỉ "giải pháp sẽ là cái này

tbl(my_con, "my_table") %>% 
  filter(batch_name %like% "batch_A_%") %>% 
  collect()

Toàn bộ reprex :

thư viện
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

Điều này hoạt động vì bất kỳ hàm nào mà dplyr không biết cách chuyển dịch sẽ được chuyển theo nguyên trạng, hãy xem ?dbplyr::translate\_sql .

Mẹo nhỏ đối với @PaulRougieux cho nhận xét gần đây của anh ấy tại đây



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xóa tất cả các khoảng trắng khỏi một trường trong cơ sở dữ liệu Postgres trong một truy vấn cập nhật?

  2. Postgres Left Tham gia với điều kiện ở đâu

  3. Hàm array_append không hoạt động

  4. nhập dữ liệu vào PostgreSQL và xuất sang CSV

  5. Postgres lồng nhau nếu trong trường hợp truy vấn