sql >> Base de Datos >  >> RDS >> PostgreSQL

Eliminar columna duplicada después de la consulta SQL

La forma más elegante sería utilizar USING cláusula en una condición de unión explícita:

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;

De esta forma, la columna houseid está en el resultado solo una vez , incluso si usa SELECT * .

Por documentación:

Para obtener el epatmpg promedio para las filas seleccionadas:

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

Si hay varias coincidencias en dayv2pub , la tabla derivada puede contener varias instancias de cada fila en vehv2pub después de la unión. avg() se basa en la tabla derivada.