аргумент содержит неопределенное значение, которое
Когда функция grouping возвращает "1", ее столбец- аргумент содержит неопределенное значение, которое следует интерпретировать как "все значения".
Если запрос выбирает значения для их непосредственного отображения на экране, можно использовать функцию grouping в выражении CASE, в котором указана специальная строка для представления "всех значений". Для этой цели можно использовать любую строку, но, конечно, стоит выбрать строку, которую легко отличить от допустимого значения данных. В следующем запросе выражения CASE используются для отображения строки "(-all-)" вместо неопределенного значения, когда функция grouping показывает, что неопределенное значение представляет "все значения":
SELECT CASE grouping(state) WHEN 1 THEN '(-all)' ELSE state END AS state, CASE grouping (county) WHEN 1 THEN '(-all-)' ELSE county END AS county, CASE grouping (city) WHEN 1 THEN '(-all-)' ELSE city END AS city, count(*) AS pop, avg(income) AS avg_income FROM census GROUP BY ROLLUP(state, county, city);
В таблице 3 показаны результата запроса. Как видно, легко отличить строку, которая представляет людей в графстве Dade с неопределенными городами от строки, представляющей группу всех людей в графстве Dade независимо от города.
STATE COUNTY CITY POPULATION AVG_INCOME
FL | Dade | Hialeah | 2 | 38700 |
FL | Dade | Miami | 2 | 36150 |
FL | Dade | (null) | 2 | 32950 |
FL | Orange | Orlando | 2 | 42350 |
FL | Orange | Taft | 2 | 29550 |
TX | Harris | Baytown | 2 | 30650 |
TX | Harris | Houston | 3 | 37800 |
TX | Travis | Austin | 2 | 40450 |
TX | Travis | (null) | 1 | 34800 |
FL | Dade | (-all-) | 6 | 35933 |
FL | Orange | (-all-) | 4 | 35950 |
TX | Harris | (-all-) | 5 | 34225 |
TX | Travis | (-all-) | 3 | 38566 |
FL | (-all-) | (-all-) | 10 | 35940 |
TX | (-all-) | (-all-) | 8 | 36085 |
(-all-) | (-all-) | (-all-) | 18 | 36000 |
Таблица 3. Результаты запроса с ROLLUP при использовании функции grouping
В запросе с ROLLUP можно также использовать разделы WHERE и HAVING. Например, следующий запрос позволяет найти число женщин и среднюю величину их дохода для каждого города, графства и штата, для которых в переписи зарегистрировано не меньше двух женщин:
Содержание Назад Вперед