We asked Aria, our AI, how filtering works with GROUP BY. She answered in four lines and sounded completely sure about all of them:

1. WHERE filters rows before they are grouped. 2. HAVING filters the groups after GROUP BY runs. 3. COUNT(*) counts every row in a group, NULLs included. 4. So WHERE COUNT(*) > 2 keeps only the groups with more than two rows. 

One line is wrong. Read them again before you scroll.

.

.

.

.

.

It's line 4. WHERE runs before the groups exist, so it can't use an aggregate like COUNT(). Most databases throw an error on that query. The filter you want is `HAVING COUNT() > 2`.

The other three are right. People often mix up line 3 with COUNT(column), which skips NULLs.

We built a free game out of this. Aria answers a coding question in 5 or 6 lines and you tap the one that's wrong, then pick why. Five rounds take about five minutes on a phone, across Python, SQL, frontend, backend, data, cloud, DSA and AI.

Our October event closes Monday 19 Oct at 11:59 pm IST, and the top 10 get LogicWiz goodies.

Play it here: https://arena.logicwiz.ai/club/BJSRBK?utm_source=devto

Which line did you pick first?