PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Datumsspaltenarithmetik in PostgreSQL-Abfrage

Sie müssten t1.user_id tabellenqualifizieren zu disambiguieren. Plus weitere Anpassungen:

CREATE TABLE foo AS 
SELECT user_id, (t1.the_date - (t2.the_date - t1.the_date)) AS start_date
FROM   table1 t1
JOIN   table2 t2 USING (user_id);
  • Die Subtraktion zweier Daten ergibt eine ganze Zahl. Besetzung war überflüssig.

  • Lassen Sie das AS nicht weg Schlüsselwort für Spaltenaliase - obwohl es im Allgemeinen in Ordnung ist, AS wegzulassen für Tabellenaliase. Das Handbuch:

    Sie können AS weglassen , aber nur, wenn der gewünschte Ausgabename mit keinem PostgreSQL-Schlüsselwort übereinstimmt (siehe Anhang C). Zum Schutz vor möglichen zukünftigen Keyword-Ergänzungen wird empfohlen, immer entweder AS zu schreiben oder den Ausgabenamen in doppelte Anführungszeichen setzen.)

  • Verbinden von Tabellen mit einem USING -Klausel behält nur eine Instanz der beitretenden Spalte(n) (user_id in diesem Fall) in der Ergebnismenge und Sie müssen es nicht mehr durch Tabellen qualifizieren.