sql >> Databáze >  >> RDS >> PostgreSQL

zápis tabulky do databáze pomocí dplyr

I když z celého srdce souhlasím s návrhem naučit se SQL, můžete využít toho, že dplyr nevytahuje data, dokud to absolutně nemusí, a nevytváří dotaz pomocí dplyr , přidejte TO TABLE klauzuli a poté spusťte příkaz SQL pomocí dplyr::do() , jako v:

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

Můžete dokonce napsat malý functoin, který dělá toto:

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

a dotaz převeďte do této funkce takto:

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. Použití pouze navigace pomocí klávesnice ve Wordu, Excelu a PowerPointu (Část 3:Panely úloh)

  2. Plánování obnovy po havárii pro MySQL a MariaDB

  3. Jak zdravý je váš SQL Server? Proaktivní monitorování databáze je kritické

  4. SQLcl pro přenos dat z Oracle do PostgreSQL nebo YugabyteDB 🅾🐘🚀