Spec-Zone.ru › DuckDB

Запрос GROUP BY

Оператор GROUP BY указывает, какие группирующие столбцы следует использовать для выполнения агрегирования в операторе SELECT. Если указан оператор GROUP BY, запрос всегда будет агрегированным, даже если в операторе SELECT нет агрегирования.

Когда используется оператор GROUP BY, все строки с совпадающими данными в группирующих столбцах (то есть все строки, принадлежащие одной группе) будут объединены. Значения самих группирующих столбцов останутся неизменными, а любые другие столбцы могут быть объединены с помощью агрегатной функции (например, count, sum, avg, и т. д.).

GROUP BY ALL

Используйте GROUP BY ALL для GROUP BY всех столбцов в операторе SELECT, которые не заключены в агрегатные функции. Это упрощает синтаксис, позволяя поддерживать список столбцов в одном месте, и предотвращает ошибки, сохраняя согласованность уровня детализации SELECT и GROUP BY (например, предотвращает дублирование). См. примеры ниже и дополнительные примеры в “Friendlier SQL with DuckDB” блоге.

Многомерные группировки

Обычно оператор GROUP BY выполняет группировку по одному измерению. Используя GROUPING SETS, CUBE или ROLLUP операторы, можно выполнять группировку по нескольким измерениям. Дополнительную информацию см. на странице GROUPING SETS.

Примеры

Подсчитайте количество записей в таблице addresses, принадлежащих каждому городу:

SELECT city, count(*)
FROM addresses
GROUP BY city;

Вычислите средний доход на город по улице:

SELECT city, street_name, avg(income)
FROM addresses
GROUP BY city, street_name;

GROUP BY ALL Примеры

Группировка по городу и улице для удаления дубликатов:

SELECT city, street_name
FROM addresses
GROUP BY ALL;

Вычислите средний доход по городу и улице. Так как доход заключен в агрегатную функцию, не включайте его в GROUP BY:

SELECT city, street_name, avg(income)
FROM addresses
GROUP BY ALL;
-- GROUP BY city, street_name:

Синтаксис

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/query_syntax/groupby.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API