PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Lulus fungsi SQL dalam fungsi filter dplyr pada database


Sebuah "dplyr -only" solusinya adalah ini

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

reprex lengkap :

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

Ini berfungsi karena fungsi apa pun yang dplyr tidak tahu cara menerjemahkannya akan diteruskan apa adanya, lihat ?dbplyr::translate\_sql .

Kiat untuk @PaulRougieux untuk komentar terbarunyadi sini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan \copy psql untuk kueri multi-baris

  2. Menambahkan batasan satu-dari-dua bukan nol di postgresql

  3. Bagaimana cara menghapus salah satu dari dua baris duplikat data saya di Postgres?

  4. Bagaimana cara menyiapkan terowongan SSH di Google Cloud Dataflow ke server database eksternal?

  5. Bagaimana cara menginstal permata pg PostgreSQL di Ubuntu?