Digamos que tengo algo como esto:¿Haciendo referencia a columnas dinámicas en una consulta postgres?
select sum(points) as total_points
from sometable
where total_points > 25
group by username
Soy incapaz de hacer referencia a total_points
en la cláusula where porque me sale el siguiente error: ERROR: column "total_points" does not exist
. En este caso, no tendría problemas para volver a escribir sum(points)
en la cláusula where, pero me gustaría tener alguna forma de hacer lo que tengo arriba.
- ¿Hay alguna manera de almacenar el resultado en una variable y sin el uso de un procedimiento almacenado?
- Si do reescribe
sum(points)
en la cláusula where, ¿es postgres lo suficientemente inteligente como para no volver a calcularlo?
No, Postgres admite la cláusula HAVING - ver respuesta de Quassnoi. –
Si bien 'PostgreSQL' admite la cláusula' HAVING', esta también es una respuesta válida (excepto que la subconsulta debe tener un alias). No veo razón para revocarla. – Quassnoi
@Quassnoi - De acuerdo. RATARÍA usar el 'HAVING' para cosas simples, como' SUM', 'COUNT', etc., pero si estoy haciendo una función matemática prolija para mi alias, preferiría establecerla en una subconsulta entonces mi consulta se ve más limpia/más agradable. –