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

Doppelte Spalte nach SQL-Abfrage entfernen

Der eleganteste Weg wäre die Verwendung des USING -Klausel in einer expliziten Join-Bedingung:

SELECT houseid, v.vehid, v.epatmpg, d.houseid, d.trpmiles
FROM   vehv2pub v
JOIN   dayv2pub d USING (houseid)
WHERE  v.vehid >= 1
AND    d.trpmiles < 15;

Auf diese Weise wird die Spalte houseid kommt nur einmal im Ergebnis vor , auch wenn Sie SELECT * verwenden .

Pro Dokumentation:

Um das durchschnittliche epatmpg zu erhalten für die ausgewählten Zeilen:

SELECT avg(v.epatmpg) AS avg_epatmpg
FROM   vehv2pub v
JOIN   dayv2pub d USING (houseid)
WHERE  v.vehid >= 1
AND    d.trpmiles < 15;

Wenn es mehrere Übereinstimmungen in dayv2pub gibt , kann die abgeleitete Tabelle mehrere Instanzen jeder Zeile in vehv2pub enthalten nach dem beitreten. avg() basiert auf der abgeleiteten Tabelle.