Имеет ли GROUP BY x = DISTINCT (все столбцы - x)? - PullRequest
0 голосов
/ 19 февраля 2019

Предположим, у меня есть десять полей в таблице sql, но GROUP BY field1 всегда совпадает с SELECT DISTINCT field1, field2, ....Почему или почему нет?Я немного проверил это, и, кажется, это верно в том, что я пробовал, но я ищу немного более строгое объяснение.

1 Ответ

0 голосов
/ 19 февраля 2019

Использование SELECT DISTINCT:

SELECT DISTINCT
  Column01,
  Column02,
  Column03,
  Column04
FROM
  TableA

Функционально аналогично написанию:

SELECT 
  Column01,
  Column02,
  Column03,
  Column04
FROM
  TableA
GROUP BY 
  Column01,
  Column02,
  Column03,
  Column04

Точнее, DISTINCT - это то же самое, что и GROUP BYна всех столбцах в списке SELECT.Если вы хотите GROUP BY, который даст вам те же результаты, что и DISTINCT, просто включите все ваши столбцы в предложение GROUP BY.

Более старые версии MySQL допускали упрощенную (некоторые могут сказать небрежную) реализацию GROUP BY, где пробелы в кодировании были заполнены лежащими в основе допущениями, которые могут быть или не быть действительными в любом конкретном случае, ифактическая функциональность была эффективно скрыта от пользователя.Например, случай в вопросе, на который вы ссылались.

Если вы ищете что-то более конкретное для вашей реальной проблемы, вам нужно отредактировать свой вопрос, включив, ну, в общем,больше специфичности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...