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

Fjern dubletkolonne efter SQL-forespørgsel

Den mest elegante måde ville være at bruge USING klausul i en eksplicit forbindelsesbetingelse:

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;

På denne måde er kolonnen houseid er kun i resultatet én gang , selvom du bruger SELECT * .

Pr. dokumentation:

For at få den gennemsnitlige epatmpg for de valgte rækker:

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

Hvis der er flere matches i dayv2pub , kan den afledte tabel indeholde flere forekomster af hver række i vehv2pub efter sammenføjningen. avg() er baseret på den afledte tabel.



  1. Kan ikke konvertere varchar til datetime i MySql

  2. Forskellen mellem count(1) og count(*) i orakel

  3. Parameteren '@myLeft' skal defineres

  4. sletning af dubletter i sql og ændring af relationstabel i overensstemmelse hermed