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

viết bảng trong cơ sở dữ liệu với dplyr

Mặc dù tôi hoàn toàn đồng ý với đề xuất học SQL, nhưng bạn có thể tận dụng lợi thế của thực tế là dplyr không kéo dữ liệu cho đến khi nó hoàn toàn phải và tạo truy vấn bằng cách sử dụng dplyr , thêm TO TABLE và sau đó chạy câu lệnh SQL bằng cách sử dụng dplyr::do() , như trong:

# 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"))

Bạn thậm chí có thể viết một functoin nhỏ để thực hiện điều này:

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

và chuyển truy vấn vào hàm đó như sau:

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. Hàm sum XPath hay fn:sum có được triển khai trong PostgreSQL XPath không?

  2. Truy vấn MySQL / Postgres dữ liệu khoảng thời gian 5 phút

  3. LỖI:giá trị khóa trùng lặp vi phạm ràng buộc duy nhất trong postgreSQL

  4. 30 bảng có ít hàng - TRUNCATE cách nhanh nhất để làm trống chúng và đặt lại các chuỗi đính kèm?

  5. Postgres chỉ chèn hàng nếu số hàng dưới một giới hạn