Верные варианты: 6, 7, 8, 9, 10.
Т.к. в селекте два поля таблицы, то они оба должны фигурировать в группировке (если у нас нет никаких ухищрений). Сама агрегирующая функция (count) никогда там не указывается.
В зависимости от диалекта некоторые варианты работать не будут (выделены ❕).
В группировке можно использовать:
1) оригинальные поля
GROUP BY column_name
2) вычисляемые поля
GROUP BY fn(column_name)
3) элиасы (псевдонимы) полей❕
SELECT column_name AS column_name_alias
...
GROUP BY column_name_alias
В Postgres, Clickhouse прокатит, а в MS SQL Server уже нет.
4) числовые индексы полей (начиная с 1)❕
GROUP BY 1
Аналогично
5) оригинальные поля в вычислениях
SELECT fn(column_name)
...
GROUP BY column_name
Последний вариант я нигде не встречала, и результат может быть не таким, какой вы ожидаете (в зависимости от функций). Но базы данных не запрещают группировать по существующим колонкам, даже если их нет в самом запросе.
Колонки и индексы можно комбинировать, но как по мне - лучше придерживаться одного стиля, иначе получается какая-то каша🥣
#sql_tips