PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aritmetica della colonna della data nella query PostgreSQL

Dovresti qualificare la tabella t1.user_id disambiguare. Più altri aggiustamenti:

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);
  • Sottraendo due date si ottiene un numero intero. Il cast era ridondante.

  • Non omettere il AS parola chiave per gli alias di colonna - mentre generalmente è OK omettere AS per gli alias di tabella. Il manuale:

    Puoi omettere AS , ma solo se il nome di output desiderato non corrisponde a nessuna parola chiave PostgreSQL (vedi Appendice C). Per proteggersi da eventuali future aggiunte di parole chiave, si consiglia di scrivere sempre AS o tra virgolette doppie il nome di output.)

  • Unire tabelle con un USING la clausola ne mantiene solo uno istanza delle colonne di unione (user_id in questo caso) nel set di risultati e non devi più qualificarlo al tavolo.