Referring to dynamic columns in a postgres query?

postgresql, sql

Solution

I believe PostgreSQL is like other brands of sql, where you need to do:

SELECT t.* 
FROM (
    SELECT SUM(points) AS total_points
    FROM sometable
    GROUP BY username
) t
WHERE total_points > 25

EDIT: Forgot to alias subquery.

Problem

Let's say I have something like this: ``` select sum(points) as total_points from sometable where total_points > 25 group by username ``` I am unable to refer to `total_points` in the where clause because I get the following error: `ERROR: column "total_points" does not exist`. In this case I'd have no problem rewriting `sum(points)` in the where clause, but I'd like some way of doing what I have above. - Is there any way to store the result in a variable without using a stored procedure? - If I do rewrite `sum(points)` in the where clause, is postgres smart enough to not recalculate it?

Original source