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.