DISTINCT
должен работать со всеми столбцами по той же причине, по которой GROUP BY
должен включать все столбцы (на которых не работают агрегатные функции), и это в том случае, если вы хотите применить DISTINCT к следующему набору результатов
id department
----------------
1 one
2 one
3 one
4 two
тогда, даже если бы SELECT id, DISTINCT department FROM table_name
было разрешено (и это есть в некоторых базах данных; например, mysql может выполнять группирование по отделам и не включать идентификатор в GROUP BY), тогда вы в конечном итоге получите неопределенную ситуацию:
id department
----------------
? one
4 two
Что должно идти вместо ?
- 1, 2 или 3?