У вас ошибка в заявлении:
select sum(points) as total_points
from sometable
where total_points > 25 -- <- error here
group by username
Вы не можете ограничить строки total_points
, потому что sometable
не имеет этого столбца. Вам нужно ограничить результирующие строки goupped total_points
, вычисленными для каждой группы, так:
select sum(points) as total_points
from sometable
group by username
having sum(points) > 25
Если вы замените total_point
в вашем примере, тогда вы просто проверяете, если сумма, вычисленная по всем строкам, больше 25, а затем возвращаете все строки, сгруппированные по имени пользователя.
Изменить:
Всегда помните порядок:
- это
FROM
с JOIN
для получения таблиц
- равно
WHERE
для предельных строк из таблиц
- is
SELECT
для предельных столбцов
- равно
GROUP BY
для групповых строк в связанных группах
- равно
HAVING
для предела результирующих групп
- равно
ORDER BY
для результатов заказа