1342
MySQLerrorqueryhigh confidence
Invalid use of group function
Production Risk
Low — syntax/semantic error; query not executed.
What this means
An aggregate function (SUM, COUNT, MAX, etc.) was used in a WHERE clause or another context where aggregation is not allowed.
Why it happens
- 1Placing SUM() or COUNT() in a WHERE clause
- 2Using an aggregate in a CHECK constraint (MySQL < 8.0.16)
- 3Nesting aggregates without subquery
How to reproduce
trigger — this will error
trigger — this will error
SELECT * FROM t WHERE SUM(amount) > 100;
expected output
ERROR 1342 (HY000): Invalid use of group function
Fix
Move aggregate to HAVING
Move aggregate to HAVING
SELECT * FROM t GROUP BY category HAVING SUM(amount) > 100;
Why this works
HAVING filters after aggregation; WHERE filters before.
What not to do
✕
Sources
Official documentation ↗
MySQL 8.0 — 1342 ER_INVALID_GROUP_FUNC_USE
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev