Oracle Developer👨🏻‍💻
3.22K subscribers
614 photos
68 videos
2 files
492 links
🔝 канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура и многое другое...

Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ.

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
Групповые функции (GROUP BY)
Групповые функции работают с множеством строк и возвращают один результат на группу.

Синтаксис:
select [столбец, ] [групп_фунция(...),]
from таблица
where условие
group by столбец;

Функции:
* AVG - среднее значение
* COUNT - количество
* MAX - максимальное
* MIN - минимальное
* SUM - сумма
* VARIANCE - дисперсия
* STDDEV - среднеквадратическое отклонение

Групповые функции игнорируют неопределенные значения в столбцах (null).

#sql #groupby
👍1
Групповые функции. Создание групп данных.

Правила:
* Все столбцы, которые входят в список SELECT и к которым не применяются групповые функции, должны быть указаны в предложении GROUP BY.
* Столбец, указанный в GROUP BY, может отсутствовать в списке SELECT.
* Возможна группировка по нескольким столбцам

Синтаксис:
select [столбец, ] [групп_фунция(...),]
from таблица
where условие
group by столбец
order by столбец;

#sql #groupby
👍1
Задача:
Есть ли разница между следующими запросами (col1 содержит различные значения в т.ч. NULL):
1. select count(1) from table1;
2. select count(*) from table1;
3. select count(col1) from table1;

Принцип решения:
count(*) и count(1) это одно и то же. Результат - количество строк выборки.
count(col1) - подсчитает только количество не NULL значений столбца col1. Это свойство групповых функций.

Если бы колонка “col1” являлась PK, т.е. не может содержать NULL-значений, то можно было бы сказать, что все три выражения эквивалентны. В нашей задаче, это не так.

Хотите получить 100% верное количество строк - используйте count(*) или count(константа).

Надеюсь, вам понравилась задачка 😉

#sql #решениезадачи #groupby
👍2