Почему мне нужно явно указать все столбцы в предложении SQL «GROUP BY» - почему бы не «GROUP BY *»?

Это всегда беспокоило меня - почему предложение GROUP BY в выражении SQL требует, чтобы я включил все неагрегированные столбцы? Эти столбцы должны быть включены по умолчанию - что-то вроде «GROUP BY *» - так как я даже не могу выполнить запрос, если они все не включены. Каждый столбец должен быть агрегированным или указываться в «GROUP BY», но, похоже, все, что не агрегировано, должно быть автоматически сгруппировано.

Может быть, это часть стандарта ANSI-SQL, но даже не знаю почему. Может ли кто-нибудь помочь мне понять необходимость этого соглашения?

Ответы на вопрос(3)

Ваш ответ на вопрос