U moet t1.user_id aan de tabel kwalificeren ondubbelzinnig te maken. Plus andere aanpassingen:
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);
-
Het aftrekken van twee datums levert een geheel getal op. Cast was overbodig.
-
Laat de
ASniet weg trefwoord voor kolomaliassen - hoewel het over het algemeen goed is omASweg te laten voor tabelaliassen. De handleiding:U kunt
ASweglaten , maar alleen als de gewenste uitvoernaam niet overeenkomt met een PostgreSQL-sleutelwoord (zie bijlage C). Voor bescherming tegen mogelijke toekomstige toevoegingen van trefwoorden, wordt aanbevolen dat u altijdAS. schrijft of dubbele aanhalingstekens voor de uitvoernaam.) -
Tabellen samenvoegen met een
USINGclausule houdt slechts één instantie van de samengevoegde kolommen (user_idin dit geval) in de resultatenset en u hoeft deze niet meer te kwalificeren.