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

tulis tabel di database dengan dplyr

Meskipun saya sangat setuju dengan saran untuk belajar SQL, Anda dapat memanfaatkan fakta bahwa dplyr tidak menarik data sampai benar-benar harus dan membangun kueri menggunakan dplyr , tambahkan TO TABLE klausa, lalu jalankan pernyataan SQL menggunakan dplyr::do() , seperti pada:

# CREATE A DATABASE WITH A 'FLIGHTS' TABLE
library(RSQLite)
library(dplyr)
library(nycflights13)
my_db <- src_sqlite("~/my_db.sqlite3", create = T)
flights_sqlite <- copy_to(my_db, flights, temporary = FALSE, indexes = list(
  c("year", "month", "day"), "carrier", "tailnum"))

# BUILD A QUERY
QUERY = filter(flights_sqlite, year == 2013, month == 1, day == 1) %>%
    select( year, month, day, carrier, dep_delay, air_time, distance) %>%
    mutate( speed = distance / air_time * 60) %>%
    arrange( year, month, day, carrier)

# ADD THE "TO TABLE" CLAUSE AND EXECUTE THE QUERY 
do(paste(unclass(QUERY$query$sql), "TO TABLE foo"))

Anda bahkan dapat menulis sedikit fungsi yang melakukan ini:

to_table  <- function(qry,tbl)
    dplyr::do(paste(unclass(qry$query$sql), "TO TABLE",tbl))

dan menyalurkan kueri ke fungsi itu seperti:

filter(flights_sqlite, year == 2013, month == 1, day == 1) %>%
    select( year, month, day, carrier, dep_delay, air_time, distance) %>%
    mutate( speed = distance / air_time * 60) %>%
    arrange( year, month, day, carrier) %>%
    to_table('foo')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PGAadmin:Tidak terhubung ke server atau koneksi ke server telah ditutup

  2. Mencetak pesan waktu berjalan di postgres

  3. cara menghitung waktu antara dua cap waktu (PostgreSQL)

  4. Jenis stempel waktu mana yang harus saya pilih dalam database PostgreSQL?

  5. Bagaimana cara membuat indeks untuk elemen array di PostgreSQL?