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

Datokolonnearitmetik i PostgreSQL-forespørgsel

Du skal tabelkvalificere t1.user_id at tvetydige. Plus andre justeringer:

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);
  • Hvis du trækker to datoer fra, får du heltal. Medvirken var overflødig.

  • Undlad at udelade AS nøgleord for kolonnealiasser - mens det generelt er OK at udelade AS for tabelaliasser. Manualen:

    Du kan udelade AS , men kun hvis det ønskede outputnavn ikke matcher noget PostgreSQL-nøgleord (se appendiks C). For at beskytte mod mulige fremtidige tilføjelser af søgeord, anbefales det, at du altid enten skriver AS eller dobbeltciter outputnavnet.)

  • Sammenføjning af tabeller med en USING klausul beholder kun én forekomst af sammenføjningskolonnerne (user_id i dette tilfælde) i resultatsættet, og du behøver ikke at tabelkvalificere det længere.




  1. MySQL-lagrede procedurer bruger dem eller ikke til at bruge dem

  2. Sådan kontrolleres, om en T-SQL UDF er skemabundet (selv når den er krypteret)

  3. Sådan tælles antallet af rækker i en tabel i SQL

  4. PostgreSQL deaktiver mere output