Группировка по D.Id и D.Name различает сущности с одинаковыми именами. Если оставить только имя, их строки и агрегаты могут объединиться; если Id остаётся в SELECT, запрос также может стать недопустимым.
Зачем во втором SQL-запросе выполнять `GROUP BY D.Id, D.Name`? Что изменится, если убрать `D.Id` из группировки?
Группировка по D.Id и D.Name различает сущности с одинаковыми именами. Если оставить только имя, их строки и агрегаты могут объединиться; если Id остаётся в SELECT, запрос также может стать недопустимым.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Группировка по D.Id и D.Name различает сущности с одинаковыми именами. Если оставить только имя, их строки и агрегаты могут объединиться; если Id остаётся в SELECT, запрос также может стать недопустимым.
Например, два подразделения «Продажи» с разными ID должны иметь отдельные суммы. GROUP BY Name объединит их в одну группу, а GROUP BY Id, Name сохранит различие.
Некоторые СУБД умеют выводить функциональную зависимость имени от первичного ключа и допускают группировку только по Id. Обратная зависимость обычно не гарантирована. Полный второй запрос и схема в условии не приведены, поэтому точный результат зависит от SELECT, ограничений уникальности и используемой СУБД.