Ich versuche herauszufinden, wie Daten aus einer temporären Tabelle in einer Postgres-Datenbank mit dplyr abgerufen werden. Der folgende Code funktioniert (ich bin in der Lage, eine temporäre Tabelle mit R zu erstellen und diese Ergebnisse abzurufen).Verwenden von dplyr zum Erstellen und Abrufen von Daten aus temporären Postgres-Tabelle
flights.db <- src_postgres(dbname = dbname, host = host, port = port,
user = user, password=pwd)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host = host, port = port, dbname = dbname, user = user, password = pwd)
## Writes the SQL code to create a temporary table on the Postgres Database
sql_tmp_create <- paste0('create temp table tmptblaa as
select * from connections
where \"Carrier\" = \'AA\' and \"Year\" = \'2015\' ')
## Executes the code
dbSendQuery(con, sql_tmp_create)
## Return 10 results from temporary table on Postgres
dbGetQuery(con, 'select * from tmptblaa limit 10')
Dies ist jedoch für mich nicht funktioniert, und ich erhalte einen Fehler, dass die Tabelle nicht existiert:
flights <-tbl(flights.db, "tmptblaa")
Alle Ideen, was ich könnte falsch machen? Für mehr Kontext ist dies, um die Effizienz einer Shiny App zu verbessern, an der ich für ein Schulprojekt arbeite. Vielen Dank.
Danke. Dies ist der Fehler, den ich bekomme ... Flüge <-tbl (flights.db, sql ('wählen * von tmpaa')) Fehler in postgresqlExecStatement (conn, Anweisung, ...): RS-DBI-Treiber: (konnte das Ergebnis nicht abrufen: ERROR: Relation "tmpaa" existiert nicht LINE 1: SELECT * FROM (wähle * von tmpaa) "zzz38" WHERE 0 = 1 –
Ah, mein Schlechter. Du hast Recht, es liegt an der Art der temporären Tabellen Ich habe meine Antwort aktualisiert – jess
Danke! Die materialisierte Ansicht macht den Job! –