Пожалуйста, объясните следующий код:
Я не могу получить значение функции выбора и grouping_id в запросе.
Это база данных Adventures в sql server.
Конкретно,
CHOOSE (1+ GROUPING_ID(a.CountryRegion) + GROUPING_ID(a.StateProvince) + GROUPING_ID(a.City), a.City + ' Subtotal', a.StateProvince + ' Subtotal', a.CountryRegion + ' Subtotal', 'Total'
Мой вопрос касается предложения choose. Согласно синтаксису , это так
CHOOSE ( index, val_1 val_2 [, val_n ] )
Кроме того, "grouping_id" должен содержать весь список столбцов, которые находятся в "GROUP BY".
Если бы вы могли сослаться хотя бы на какую-нибудь статью о группировке id.
Я сделал свой поиск в google. То, что я понял, кажется недостаточным.
Спасибо за помощь
Что я уже пробовал:
SELECT a.CountryRegion, a.StateProvince, a.City, CHOOSE (1+ GROUPING_ID(a.CountryRegion) + GROUPING_ID(a.StateProvince) + GROUPING_ID(a.City), a.City + ' Subtotal', a.StateProvince + ' Subtotal', a.CountryRegion + ' Subtotal', 'Total') AS Level, SUM(soh.TotalDue) AS Revenue FROM SalesLT.Address AS a JOIN SalesLT.CustomerAddress AS ca ON a.AddressID = ca.AddressID JOIN SalesLT.Customer AS c ON ca.CustomerID = c.CustomerID JOIN SalesLT.SalesOrderHeader as soh ON c.CustomerID = soh.CustomerID GROUP BY ROLLUP(a.CountryRegion, a.StateProvince, a.City) ORDER BY a.CountryRegion, a.StateProvince, a.City;
CHill60
Вы читали документацию?
Выберите (Transact-SQL) | Microsoft Docs[^]
GROUPING_ID (Transact-SQL) | Microsoft Docs[^]
Member 13842073
Да, я это читал. Все еще не ясно