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 *
.
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.