Групповые функции (GROUP BY)
Групповые функции работают с множеством строк и возвращают один результат на группу.
Синтаксис:
* AVG - среднее значение
* COUNT - количество
* MAX - максимальное
* MIN - минимальное
* SUM - сумма
* VARIANCE - дисперсия
* STDDEV - среднеквадратическое отклонение
Групповые функции игнорируют неопределенные значения в столбцах (null).
#sql #groupby
Групповые функции работают с множеством строк и возвращают один результат на группу.
Синтаксис:
select [столбец, ] [групп_фунция(...),]Функции:
from таблица
where условие
group by столбец;
* AVG - среднее значение
* COUNT - количество
* MAX - максимальное
* MIN - минимальное
* SUM - сумма
* VARIANCE - дисперсия
* STDDEV - среднеквадратическое отклонение
Групповые функции игнорируют неопределенные значения в столбцах (null).
#sql #groupby
👍1
Групповые функции. Создание групп данных.
Правила:
* Все столбцы, которые входят в список SELECT и к которым не применяются групповые функции, должны быть указаны в предложении GROUP BY.
* Столбец, указанный в GROUP BY, может отсутствовать в списке SELECT.
* Возможна группировка по нескольким столбцам
Синтаксис:
Правила:
* Все столбцы, которые входят в список SELECT и к которым не применяются групповые функции, должны быть указаны в предложении GROUP BY.
* Столбец, указанный в GROUP BY, может отсутствовать в списке SELECT.
* Возможна группировка по нескольким столбцам
Синтаксис:
select [столбец, ] [групп_фунция(...),]#sql #groupby
from таблица
where условие
group by столбец
order by столбец;
👍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
Есть ли разница между следующими запросами (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