With a table like:

```
first_name    last_name
------------------------
jack          frost
john          wayne
betty         white
null          jackson

```

And this query:

```sql
select first_name, COUNT(first_name) from people;

```

MySQL and Postgres won't even run it. They somehow know that this requires a GROUP BY.

SQLite produces a result with a single row: `jack 3`

How do MySQL and Postgres know that this requires a GROUP BY? Why is GROUP BY even required?

Why is SQLite's result a single row? I would have expected the output to be something like:

```
jack 3
john 3
betty 3
null 3

```