Классика баз данных - статьи

       

ELSE state END AS state,


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 f_pop, avg(income) AS avg_f_income FROM census WHERE sex = 'F' GROUP BY ROLLUP(state, county, city) HAVING count(*) >= 2;

Результаты, приведенные в таблице 4, показывают, что данные переписи содержат двух или более женщин в одном городе (Houston), в трех графствах (Dade, Orange и Harris); в двух штатах (Florida и Texas) и во всей таблице целиком.



STATE COUNTY CITY F_POP AVG_F_INCOME













TX Harris Houston 2 44700
FL Dade (-all-) 2 40100
FL Orange (-all-) 2 36600
TX Harris (-all-) 2 44700
FL (-all-) (-all-) 4 38350
TX (-all-) (-all-) 3 39750
(-all-) (-all-) (-all-) 7 38816


Таблица 4. Результаты запроса с ROLLUP и разделами WHERE и HAVING


Содержание  Назад  Вперед