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

Rimuovere la colonna duplicata dopo la query SQL

Il modo più elegante sarebbe usare USING clausola in una condizione di join esplicita:

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;

In questo modo, la colonna houseid è nel risultato solo una volta , anche se utilizzi SELECT * .

Per documentazione:

Per ottenere il epatmpg medio per le righe selezionate:

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

Se sono presenti più corrispondenze in dayv2pub , la tabella derivata può contenere più istanze di ogni riga in vehv2pub dopo l'unione. avg() si basa sulla tabella derivata.