Вопрос №55523 от пользователя Daniyar Zhanakhmetov в уроке «Группировка (GROUP)», курс «Основы реляционных баз данных»

Daniyar Zhanakhmetov

Указать поле created_at в выражении GROUP BY. Тогда значение этого поля для каждой группы будет одинаковым (в этом и суть группировки).

Значением поля будет сама дата, а она разная почти у всех, разве нет?

5 0

Maksim Litvinov

Вы все правильно говорите. Обратите внимание на текст чуть ниже:

Так как даты создания у всех топиков уникальны (почти наверняка), то вся таблица разобьётся на группы по одному элементу. Смысла в таком запросе не очень много

0

Daniyar Zhanakhmetov

Максим Литвинов, все равно не могу понять.... (

Указать поле created_at в выражении GROUP BY. Тогда значение этого поля для каждой группы будет одинаковым (в этом и суть группировки), а значит СУБД однозначно определит, что нужно добавить в результат:

Что имеется ввиду, когда говорится **значение этого поля* для каждой группы будет одинаковым* ? Может под значением поля вы имеете ввиду имя поля: created_at? Якобы у всех групп имя поля будет одинаковым?

0

Maksim Litvinov

SELECT user_id, created_at, COUNT(*) AS topics_count
  FROM topics
  GROUP BY user_id, created_at;

Такой запрос сначала сгруппирует записи по айди пользователя. Т.е. он выберет все записи с одинаковым значением поля user_id и сгруппирует их. Затем, внутри каждой такой группы он сгруппирует записи по дате создания топика - выберет записи с одинаковым значением поля created_at. Почти наверняка не будет двух записей с одинаковой датой создания, поэтому получится много групп по одному топику.

1

Daniyar Zhanakhmetov

Максим Литвинов, Большое спасибо! Дошло наконец-то :-)

Тогда значение этого поля для каждой группы будет одинаковым. Я это понял так: у каждой группы значение поля created_at будет одно и то же. :-) И это не могло уложиться у меня в голове. :-)

Может лучше так, или это только до меня так долго доходит)

Тогда значение этого поля для каждого кортежа определенной группы будет одинаковым.

0

Maksim Litvinov

Спасибо, немного изменил формулировку этой фразу

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
18 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
18 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
18 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
18 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
18 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
18 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
18 мая 5 месяцев