12. MySQL 8 - Агрегирующие функции

Поделиться
HTML-код
  • Опубликовано: 8 май 2019
  • Агрегирующие функции типа SUM, AVG, COUNT, GROUP_CONCAT позволяют получать информацию по набору данных. Например, сумму значений по полю, среднее значение или количество строк, подходящих под условие в WHERE оператора SELECT.
    Агрегирующие функции часто используются с предикатом GROUP BY

Комментарии • 17

  • @dmitry6687
    @dmitry6687 3 года назад +1

    Было настолько интересно, что я аж лайк поставлю!

    • @HtmllabRu
      @HtmllabRu  3 года назад

      Спасибо! 👍

  • @Piara12
    @Piara12 3 года назад

    Добрый день!
    Подскажите, пожалуйста, а если мне нужно, например, получить список стран площадью (или населением) "от" какого-то значение. Например, население от 80 млн?
    Или я вообще не ту лекция смотрю и подобное искать в других уроках нужно?
    Только начинаю осваивать)

    • @HtmllabRu
      @HtmllabRu  3 года назад +2

      Здравствуйте)
      mysql> SELECT name FROM country WHERE population >= 8e7;
      +--------------------+
      | name |
      +--------------------+
      | Bangladesh |
      | Brazil |
      | China |
      | Germany |
      | Indonesia |
      | India |
      | Japan |
      | Mexico |
      | Nigeria |
      | Pakistan |
      | Russian Federation |
      | United States |
      +--------------------+
      12 rows in set (0.02 sec)
      Посмотрите следующий ролик и конкретный момент в нём ruclips.net/video/hzN2H3FnMio/видео.html

  • @capslow_ru
    @capslow_ru 5 лет назад +2

    довольно познавательно, но тема лимитов агрегирующей конкатенации не раскрыта)

    • @HtmllabRu
      @HtmllabRu  5 лет назад +2

      dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_group_concat_max_len
      group_concat_max_len - задаёт ограничение по умолчанию в байтах. По умолчанию 1024
      увеличить можно как через консоль SET SESSION group_concat_max_len = 100000, так и записав в конфигурационный файл:
      [mysqld]
      group_concat_max_len = 100000

    • @capslow_ru
      @capslow_ru 5 лет назад +3

      @@HtmllabRu Спасибо!

  • @sergeysokolov2329
    @sergeysokolov2329 2 года назад

    Здравствуйте. Проблема капитальная. У меня список учителей со статусом нагруженности (1. лидер, 2 .более чем четверть. 3. нормально. 4. отсутствует). И во второй таблице идут уроки, напротив каждого урока ID учителя и количество часов, ну типа расписание. И не получается написать функцию, которая бы перебрала таблицу с расписанием, подсчитывала общее количество часов сколько каждый учитель прозанимался, и в соответствии с этим выставить статус. Лидера и отсутствующих получилось, нормальными можно первым шагом делать вообще всех учителей, а как сделать чтобы те кто более чем четверть от общего количества часов - не получается. Можете посоветовать, где поискать ответов? А за уроки уважуха, похожи на Юрия Хотя. Такое ощущение, что под Сектор Газа программировать учишься )

  • @user-xp6uu5yu6t
    @user-xp6uu5yu6t 4 года назад +2

    Добрый вечер. 6:40 - Вы говорить, что строка 34 была отсечена, но написано 93. Это оговорка или я чего-то не понимаю?

    • @HtmllabRu
      @HtmllabRu  4 года назад +1

      Неправильно сказал 😬. Спасибо!

  • @oleksandrmuravskyi2370
    @oleksandrmuravskyi2370 4 года назад +2

    [09:53] - Yugoslavia? )))

    • @HtmllabRu
      @HtmllabRu  4 года назад +1

      Смущают старые данные?) Кажется в ролике о базе данных world упоминал, что многое изменилось с момента создания базы.

  • @user-cx4my8fr7z
    @user-cx4my8fr7z 4 года назад +1

    Здравствуйте, не понял вот этот момент: SELECT name, surfacearea FROM country ORDER BY 2 DESC LIMIT 1. Задачу смог сделать осознанно таким образом: SELECT name, surfacearea FROM country WHERE surfacearea = (SELECT MAX(surfacearea) FROM country); (Вы этот способ упомянули, но я об этом узнал позже, тк Вы были на паузе)). Не пойму, что означает 2, пересмотрел ролик про "SELECT", там 1 - continent. Выполнил "DESC country" и как-то для меня неявно continent это 1, соответственно, не понял про 2. Поясните, пожалуйста, этот момент ещё раз. Спасибо.

    • @HtmllabRu
      @HtmllabRu  4 года назад +1

      ORDER BY 2 DESC, означает сортировку по ВТОРОМУ полю из SELECT, в данном случае по surfacearea

    • @user-cx4my8fr7z
      @user-cx4my8fr7z 4 года назад

      @@HtmllabRu Почему continent это 1, а не code? Спасибо.

    • @HtmllabRu
      @HtmllabRu  4 года назад +2

      @@user-cx4my8fr7z вот об этом моменте речь ruclips.net/video/549E5lzzbiU/видео.html? В этом SELECT из 11 строки, выбираются два поля и continent из них первое. То есть с GROUP BY действует то же правило - можем указать номер поля в SELECT по которому группируем

    • @user-cx4my8fr7z
      @user-cx4my8fr7z 4 года назад

      @@HtmllabRu Понял. Спасибо Вам за Ваше время.