ГРУППИРОВКА (Transact-SQL) — SQL Server
Редактировать
Твиттер LinkedIn Фейсбук Электронная почта
- Статья
- 2 минуты на чтение
Применяется к: SQL Server База данных SQL Azure Azure SQL Управляемый экземпляр Azure Synapse Analytics
Указывает, является ли выражение указанного столбца в списке GROUP BY агрегированным или нет. GROUPING возвращает 1 для агрегирования или 0 для отсутствия агрегирования в результирующем наборе. GROUPING можно использовать только в предложениях SELECT
Соглашения о синтаксисе Transact-SQL
Синтаксис
ГРУППИРОВКА ()
Чтобы просмотреть синтаксис Transact-SQL для SQL Server 2014 и более ранних версий, см. документацию по предыдущим версиям.
Аргументы
Столбец или выражение, которое содержит столбец в предложении GROUP BY.
Типы возвращаемых значений
tinyint
ГРУППИРОВКА используется для того, чтобы отличить нулевые значения, возвращаемые ROLLUP, CUBE или GROUPING SETS, от стандартных нулевых значений. NULL, возвращаемый в результате операции ROLLUP, CUBE или GROUPING SETS, является особым использованием NULL. Это действует как заполнитель столбца в наборе результатов и означает все.
Примеры
В следующем примере группируется SalesQuota
и агрегируются суммы SaleYTD
в базе данных AdventureWorks2019. Функция GROUPING
применяется к столбцу SalesQuota
.
ВЫБРАТЬ SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Группировка' ОТ Sales.SalesPerson ГРУППИРОВАТЬ ПО SalesQuota С ОБЪЕДИНЕНИЕМ; ИДТИ
Набор результатов показывает два пустых значения в разделе SalesQuota
. Первые NULL
представляет группу нулевых значений из этого столбца в таблице. Второй NULL
находится в итоговой строке, добавленной операцией ROLLUP. В итоговой строке показаны суммы TotalSalesYTD
для всех групп SalesQuota
, которые обозначены как 1
в столбце Grouping
.
Вот набор результатов.
SalesQuota TotalSalesYTD Группировка --------------------------- ------------------ -------- НУЛЕВОЙ 1533087,5999 0 250000,00 33461260,59 0 300000,00 9299677,9445 0 НУЛЕВОЙ 44294026.1344 1 (затронуты 4 строки)
См. также
GROUPING_ID (Transact-SQL)
GROUP BY (Transact-SQL)
T-SQL GROUP BY — javatpoint
следующий → ← предыдущая В Transact SQL предложение GROUP BY используется для организации данных в группу. За ним следует предложение WHERE в операторе SELECT в запросе. Он имеет агрегатные функции (MAX, MIN, AVG, SUM и COUNT) для группировки результата по одному или нескольким столбцам. Ниже приведен синтаксис предложения GROUP By:Предложение GROUP BY ВЫБЕРИТЕ столбец1, столбец2 ОТ имя_таблицы ГДЕ [ условия ] СГРУППИРОВАТЬ ПО столбцу1, столбцу2 ORDER BY столбец1, столбец2 Пример:Рассмотрим таблицу CUSTOMERS со следующими записями:
Если вы хотите узнать общую сумму зарплаты каждого клиента, то следующим будет запрос GROUP BY. ВЫБЕРИТЕ ИМЯ, СУММУ (ЗАРПЛАТУ) как [сумма зарплаты] ОТ КЛИЕНТОВ СГРУППИРОВАТЬ ПО ИМЕНИ; Команда выдает вывод, который приведен ниже.
Рассмотрим следующую таблицу CUSTOMERS, в которой есть записи с разными именами.
|