В отличие от Order By
, Having
не работает с номерами столбцов. От Документы :
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
Теперь я бы порекомендовал вам никогда не использовать номера столбцов, даже с Order By
. Он подвержен ошибкам и снижает ясность кода и читаемость для будущих сопровождающих.
Вместо этого вы можете определить псевдонимы, а использовать их в предложениях Group By
, Order By
и Having
.
SELECT
u.email,
sum(completed_on > (now() - interval 7 day)) AS sum_7day_diff,
sum(completed_on > (now() - interval 30 day)) AS sum_30day_diff,
count(*)
FROM mturk_flush f JOIN auth_user u ON f.completed_by_id=u.id
WHERE completed_by_id IS NOT NULL
GROUP BY completed_by_id
HAVING sum_30day_diff != 0
ORDER BY sum_30day_diff DESC