sql >> Database >  >> RDS >> PostgreSQL

Dubbele kolom verwijderen na SQL-query

De meest elegante manier zou zijn om de te gebruiken USING clausule in een expliciete join-voorwaarde:

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;

Op deze manier wordt de kolom houseid komt slechts eenmaal voor in het resultaat , zelfs als u SELECT * . gebruikt .

Per documentatie:

Om de gemiddelde epatmpg te krijgen voor de geselecteerde rijen:

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

Als er meerdere overeenkomsten zijn in dayv2pub , kan de afgeleide tabel meerdere instanties van elke rij in vehv2pub bevatten na de toetreding. avg() is gebaseerd op de afgeleide tabel.



  1. SQLite Beschrijf Tabel

  2. CodeIgniter PDO-databasestuurprogramma werkt niet

  3. SQL Server 2005 DateAdd gebruiken om een ​​dag aan een datum toe te voegen

  4. Hibernate's saveOrUpdate negeert de niet-null kolomeigenschap