12. MySQL 8 - Агрегирующие функции
HTML-код
- Опубликовано: 8 май 2019
- Агрегирующие функции типа SUM, AVG, COUNT, GROUP_CONCAT позволяют получать информацию по набору данных. Например, сумму значений по полю, среднее значение или количество строк, подходящих под условие в WHERE оператора SELECT.
Агрегирующие функции часто используются с предикатом GROUP BY
Было настолько интересно, что я аж лайк поставлю!
Спасибо! 👍
Добрый день!
Подскажите, пожалуйста, а если мне нужно, например, получить список стран площадью (или населением) "от" какого-то значение. Например, население от 80 млн?
Или я вообще не ту лекция смотрю и подобное искать в других уроках нужно?
Только начинаю осваивать)
Здравствуйте)
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
довольно познавательно, но тема лимитов агрегирующей конкатенации не раскрыта)
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
@@HtmllabRu Спасибо!
Здравствуйте. Проблема капитальная. У меня список учителей со статусом нагруженности (1. лидер, 2 .более чем четверть. 3. нормально. 4. отсутствует). И во второй таблице идут уроки, напротив каждого урока ID учителя и количество часов, ну типа расписание. И не получается написать функцию, которая бы перебрала таблицу с расписанием, подсчитывала общее количество часов сколько каждый учитель прозанимался, и в соответствии с этим выставить статус. Лидера и отсутствующих получилось, нормальными можно первым шагом делать вообще всех учителей, а как сделать чтобы те кто более чем четверть от общего количества часов - не получается. Можете посоветовать, где поискать ответов? А за уроки уважуха, похожи на Юрия Хотя. Такое ощущение, что под Сектор Газа программировать учишься )
Добрый вечер. 6:40 - Вы говорить, что строка 34 была отсечена, но написано 93. Это оговорка или я чего-то не понимаю?
Неправильно сказал 😬. Спасибо!
[09:53] - Yugoslavia? )))
Смущают старые данные?) Кажется в ролике о базе данных world упоминал, что многое изменилось с момента создания базы.
Здравствуйте, не понял вот этот момент: 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. Поясните, пожалуйста, этот момент ещё раз. Спасибо.
ORDER BY 2 DESC, означает сортировку по ВТОРОМУ полю из SELECT, в данном случае по surfacearea
@@HtmllabRu Почему continent это 1, а не code? Спасибо.
@@user-cx4my8fr7z вот об этом моменте речь ruclips.net/video/549E5lzzbiU/видео.html? В этом SELECT из 11 строки, выбираются два поля и continent из них первое. То есть с GROUP BY действует то же правило - можем указать номер поля в SELECT по которому группируем
@@HtmllabRu Понял. Спасибо Вам за Ваше время.