PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Remover coluna duplicada após consulta SQL


A maneira mais elegante seria usar o USING cláusula em uma condição de junção 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;

Dessa forma, a coluna houseid está no resultado apenas uma vez , mesmo se você usar SELECT * .

Por documentação:

Para obter o epatmpg médio para as linhas selecionadas:
SELECT avg(v.epatmpg) AS avg_epatmpg
FROM   vehv2pub v
JOIN   dayv2pub d USING (houseid)
WHERE  v.vehid >= 1
AND    d.trpmiles < 15;

Se houver várias correspondências em dayv2pub , a tabela derivada pode conter várias instâncias de cada linha em vehv2pub após a junção. avg() é baseado na tabela derivada.