1999 г

 

Уважаемые читатели!

Дон Чемберлин в последние годы не часто балует нас своими статьями. Тем приятнее было встретить его публикацию, посвященную особенностям выполнения в DB2 операций обобщенного группирования. По-моему, статья написана предельно ясно и дает правильное представление о полезных для анализа данных операциях ROLLUP и CUBE. Мне понравилось.

До скорыхСкорых Александр Митрофанович— председатель Донецкого отделения Национального союза художников Украины, скульптор. Родился 27 января 1939 года в Дружковке. встреч, Сергей КузнецовКузнецов (Кузнецова)— одна из самых распространённых русских фамилий. В «Списке общерусских фамилий», занимает 3 место. Самым распространённым сочетанием фамилии имени и отчества в России в XX веке считался Кузнецов Николай Иванович


DB2 MagazineMagazine— британская рок-группа, образованная в 1977 году в Манчестере, Англия, Ховардом Девото после ухода из Buzzcocks, и считающаяся одной из самых новаторских и влиятельных в новой волне. Magazine выпустили четыре студийных альбома и не имели оглушительного коммерческого успеха, но, соединив панк- и арт-рок с элементами экспериментального рока, положили начало новой, постпанковской ветви музыкального развития. Дебютный сингл группы «Shot By Both Sides» многие специалисты называют классическим; дебютный альбом Real Life вошёл в список «1000 Albums To Hear Before You Die». OnlineОнлайн (англ.online, от англ.on line— «на линии», «на связи», «в сети», «в эфире»)— «находящийся в состоянии подключения». Первоначально использовалось только в отношении коммуникационного оборудования для указания на режим связи, типичным значением могло быть «не вешая трубку», то есть за один телефонный звонок, в режиме реального времени., Winter 1998

Super Groups (www.db2mag.com/98w_cham.shtml)

Don Chamberlin

Член группы разработчиков DB2 в исследовательском центре IBM Almaden. Дон Чемберлин известен в мире баз данных с 1970-х, когда он был одним из основных архитекторов и разработчиков проекта System R.

 

При потребностиПотребность, нужда— внутреннее состояние психологического или функционального ощущения недостаточности чего-либо и проявляются в зависимости от ситуационных факторов. задавать запросы, пересекающие несколько измерений, вам может понадобиться знакомство с этой новой возможностьВозможность — направление развития, присутствующее в каждом явлении жизни; выступает и в качестве предстоящего, и вполне объяснимо рациональным путем: в каждой возможности присутствует вероятная невозможность, «возможность невозможного». Возможность не определяется познанием того, что может быть. Познание вероятностей, возможностей не всегда влияет на нашу возможность. На изучении возможности основывается, главным образом, исследование бытия и события.ю DB2.

Раздел GROUP BY языка SQL является одним из самых старых и часто используемых средств языка. Он позволяет преобразовать таблицу в группу строк и вычислить некоторые свойстваСвойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона. каждой группы, такие как число строк в группе или среднее значение столбца или выражения. В ранних версиях DB2 можно было формировать группы только одним способом: сопоставлением значений одного или нескольких столбцов, называемых столбцами группирования.

В пятой версии DB2 Universal Database (UDB) при формировании групп допускается большая гибкость. В дополнение к возможности группировки по отдельным столбцам DB2 UDB дает возможность группировать по выражениям, таким как SALARY + BONUS или YEAR(BIRTHDATE). В UDB также поддерживается новая возможность, называемая супергруппами, позволяющая выполнять в одном запросе более одного вида группировки. Эта возможность полезна, если имеется большая коллекцияКоллекция— систематизированное собрание чего-либо, объединённое по какому-то конкретному признаку, имеющее внутреннюю целостность и принадлежащее конкретному владельцу— частному лицу, организации, государству. точек данных, привязанных к нескольким измерениям, таким как время, позиция и тип измерения, и требуется проанализировать данные, чтобы увидеть как они изменяются в каждом измерении.

Для иллюстрацииИллюстрация— визуализация, такая как рисунок, фотография или другая работа, создаваемая с целью выделить субъект, а не форму. Иллюстрации поясняют и декорируют текстовое содержимое книги, журнала, газеты. супергрупп в DB2 UDB будет использоваться база данных переписи населения, приведенная на таблице 1. Чтобы помочь в понимании приводимых запросов строки в таблице Census приведены в порядке возрастания значений столбцов state, county и city, но, конечно, в самой таблице упорядочение отсутствует. Заметим, что таблицаТаблица (из лат.tabula «доска»)— способ передачи содержания, заключающийся в организации структуры данных, в которой отдельные элементы помещены в ячейки, каждой из которых сопоставлена пара значений— номер строки и номер колонки. Таким образом, устанавливается смысловая связь между элементами, принадлежащими одному столбцу или одной строке. содержит несколько неопределенных значений -- некоторые даты рождения и величинаВеличина — одно из основных математических понятий, смысл которого с развитием математики подвергался ряду обобщений. дохода неизвестны, а для некоторых людей, возможно«Возможно» (фр.Peut-tre)— фильм режиссёра Седрика Клапиша 1999 года., проживающих в сельской местности, неопределенное значение содержит столбец city.

NAME CITY COUNTY STATE BIRTHDATE SEX INCOME
Joe Miami Dade FL 8/20/55 M 32100
Frank Miami Dade FL 6/05/57 M 40200
Bob Hialeah Dade FL 3/21/57 M 33500
Karen Hialeah Dade FL 8/23/55 F 43900
Jim (null) Dade FL 10/24/56 M 29600
Joan (null) Dade FL 11/15/56 F 36300
Dave Orlando Orange FL 9/25/57 M 38000
Linda Orlando Orange FL 5/13/55 F 46700
Jeff Taft Orange FL 2/08/57 M 32600
Pat Taft Orange FL 10/30/57 F 26500
Sam Baytown Harris TX 3/92/55 M 28500
Bill Baytown Harris TX 12/21/56 M 32800
Mary HoustonХьюстон (англ.Houston; устаревший вариант русского названия— Гоустон)— четвёртый по количеству жителей город в Соединённых Штатах Америки и крупнейший город в штате Техас. По данным переписи населения США в 2010 году в городе проживало 2 099 451 человек. Хьюстон— административный центр округа Харрис и главный экономический центр агломерации Большого Хьюстона(англ.)русск., с общим населением 6 108 060 человек. Harris TX (null) F 44700
Susan Houston Harris TX 4/30/55 F (null)
Alex Houston Harris TX 7/11/57 M 30900
John Austin Travis TX 1/06/56 M 38400
Fred Austin Travis TX 10/25/56 M 42500
Anne (null) Travis TX 8/17/55 F 34800

Таблица 1. Таблица Census

ТрадиционныйТрадиция— набор представлений, обычаев, привычек и навыков практической деятельности, передаваемых из поколения в поколение, выступающих одним из регуляторов общественных отношений. запрос с GROUP BY мог бы реорганизовать таблицу Census в группы в соответствии со значениями одного из столбцов, как показывает следующий пример, в котором находится средняя сумма доходов в каждом штате:

SELECT state, avg(income) AS avg_income
FROM census
GROUP BY state;

При написании такого запроса может захотеться в придачу к средней величине дохода в каждом штате вычислить среднюю сумму дохода для всей таблицы переписи. В DB2 UDB наиболее эффективным способом получения такой информации является один проход по данным переписи с одновременным вычислением средней суммы доходов по штатам и общей средней суммы. Чтобы обеспечить возможность задать такой тип вопроса наиболее эффективным способом, DB2 UDB позволяет написать запрос, специфицирующий более одного вида группирования. Это делают возможным три новые фразы в разделе GROUP BY -- ROLLUP, CUBE и GROUPING SETS.

ROLLUP

ROLLUP можно использовать каждый раз, когда требуется анализ коллекции данных в одном измерении, но более, чем на одном уровне детальности. Можно включить ROLLUP в раздел GROUP BY с указанием списка выражений группировки. DB2 UDB сначала группирует данныеДанные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. по всем выражениям группировки, потом по всем выражениям, кроме последнего, потом по всем, кроме двух последних, и т.д. После группировки по только первому выражению система выполняет последнюю группировку, в которой образуется одна группа, включающая всю таблицу целиком. (Это звучит похоже на повторяющийся процесс, но реально все группировки выполняются одновременно за один проход по таблице.)

В следующем примере иллюстрируется мощностьМощность— физическая величина, равная отношению работы, выполняемой за некоторый промежуток времени, к этому промежутку времени. ROLLUP. Систему просят найти число людей и среднюю сумму дохода в каждом городе, графстве и штате, а также аналогичные показатели для всей таблицы переписи:

SELECT state, county, city,
 count (*) AS population,
 avg (income) AS avg_income
FROM census
GROUP BY ROLLUP (state, county, city);

Поскольку этот запрос не включает раздел ORDER BY, в результирующем наборе не гарантируется какая-либо упорядоченность строк. Однако, чтобы проиллюстрировать, каким образом вычислялся результат, в таблице 2 строки приведены в соответствующем порядке. Во-первых, имеются девять строк для групп, образованных группировкой по state, county и city; затем идут четыре строки для группировки по state и county с неопределенными значениями для city; затем - две строки для группировки по state с неопределенными значениями для county и city; и, наконец, одна завершающая строка для всей таблицы Census с неопределенными значениями для state, county и city.

Напомним, что порядок выражений в списке ROLLUP является существенным. Если одна разновидность группы логически содержится внутри другой (как county содержится внутри state), следует убедиться, что первой указывается самая включающая группа (state до county).

STATE COUNTY CITY POPULATION AVG_INCOME
FL Dada 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 (null) 6 35933
FL OrangeOrange— один из ведущих мировых телекоммуникационных операторов, оператор сотовой связи, а также интернет-провайдер. Является подразделением France Tlcom, а также входит в альянс FreeMove. (null) 4 35950
TX Harris (null) 5 34225
TX Travis (null) 3 38566
FL (null) (null) 10 35940
TX (null) (null) 8 36085
(null) (null) (null) 18 36000

ТаблицаТаблица (из лат.tabula «доска»)— способ передачи содержания, заключающийся в организации структуры данных, в которой отдельные элементы помещены в ячейки, каждой из которых сопоставлена пара значений— номер строки и номер колонки. Таким образом, устанавливается смысловая связь между элементами, принадлежащими одному столбцу или одной строке. 2. Результаты запроса с ROLLUP

Как показывает таблица 2, один запрос вычислил четыре разных уровня группировки, для чего потребовалось бы четыре запроса без ROLLUP. Поэтому возможность ROLLUP обеспечивает большие преимущества в отношение и удобства, и эффективности. Однако, если внимательно посмотреть на результаты запроса, можно заметить наличие некоторого беспорядка. Результат содержит две строки (помеченные звездочками) для графства Dade, штат Florida с неопределенным значениеЗначение— ассоциативная связь между знаком и предметом обозначения.м city. В одной из этих строк значение population равно двум, в другой - шести.

Первая из этих строк представляет группу на уровне state, county, city, включающую людей, проживающих в графстве Dade, Florida в сельской местности вне какого-либо города. (Из таблицы Census видно, что таких людей двое - Jim и Joan.) С другойДругой — центральная категория современной философии. Актуализация данного понятия связана с такими событиями, как антропологический и лингвистический поворот. Другой — это не Я, тот, кто противостоит мне, находится по ту сторону меня, моих ценностей, моего мировоззрения. И вместе с тем, Другой такой же как Я: он мыслит, чувствует, ходит и т. д. стороны, вторая строка представляет группу уровня state, county, включающую всех людей, проживающих в графстве Dade. (В таблице Census представлено шесть таких человек.) Поэтому можно сказать, что неопределенное значение в первой строке означает "нет города", а неопределенное значение во второйВторой — второй по счёту альбом песен Владимира Высоцкого в исполнении Григория Лепса, записанный и вышедший в 2007 году строке означает "все города". Понятно, что требуется какой-то способ различать эти случаи путем указания уровня группировки, относящегося к каждой строке. DB2 UDB обеспечивает функцию, называемую grouping и служащую в точности для этих целей.

ФункцияФункция— многозначный термин, который означает такое отношение между элементами, в котором изменение в одном влечет изменение в другом. grouping предназначена для использования в запросах, производящих более одного типа группировки. Аргументом функции является один из столбцов группировки, и функция возвращает значение "1", если указанный столбец слит с группой более высокого уровня. Таким образом, для тех специальных строк, в которых неопределенное значение city означает "все города", значение grouping(city) есть "1"; для обычных строк значение grouping(city) есть "0".

Функцию grouping можно использовать несколькими способами. Когда запрос с ROLLUP выполняется из прикладной программы, следует применять функцию grouping к каждому столбцу списка ROLLUP и считывать результаты в переменные основной программы для использования при интерпретации строк результата запроса. Когда функция 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. Например, следующий запрос позволяет найти число женщин и среднюю величину их дохода для каждого города, графства и штата, для которых в переписи зарегистрировано не меньше двух женщин:

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

CUBE

Мы обсудили полезностьПолезность (или «Потребительная стоимость») блага или товара— его способность удовлетворять какую-нибудь человеческую потребность. операции ROLLUP для группирования данных на разных уровнях детальности в одном измерении. (В примерах этим измерением была география.) При потребности анализировать данные путем их группировки в более, чем одном измерении, нужно использовать операцию CUBE.

Предположим, что нас интересует влияние пола и даты рождения на сумму дохода. Поскольку пол и дата рождения являются независимыми переменными, имеются четыре возможных способа группировки данных переписи:

  1. Группировка по sex и birthdate (типичный пример: женщины, родившиеся в 1955 г.)
  2. Группировка только по sex (типичный пример: женщины всех возрастов)
  3. Группировка только по birthdate (типичный пример: люди обоих полов, родившиеся в 1955 г.)
  4. Обработка таблицы как одной группы, содержащей оба пола и все даты рождения

Операция CUBE заставляет систему производить группировку по списку выражений всеми возможными способами. Например, если указывается GROUP BY CUBE (sex, year(birthdate)), то система будет формировать группы всеми четырьмя перечисленными выше способМетод (от греч. — «способ»)— систематизированная совокупность шагов, действий, которые необходимо предпринять, чтобы решить определенную задачу или достичь определенной цели. В отличие от области знаний или исследований, является авторским, то есть созданным конкретной персоной или группой персон, научной или практической школой. В силу своей ограниченности рамками действия и результата, методы имеют тенденцию морально устаревать, преобразовываясь в другие методы, развиваясь в соответствии с временем, достижениями технической и научной мысли, потребностями общества. Совокупность однородных методов принято называть подходом. Развитие методов является естественным следствием развития научной мысли.ами. В запросе с CUBE, как и в запросЗапрос— это формулирование своей информационной необходимости пользователем некоторой базы данных, как, например, поисковой системы. Для составления запроса используется язык поисковых запросов.е с ROLLUP, содержимое сгруппированного столбца появляется как неопределенное значение.

При взгляде на строку результата запроса с CUBE может оказаться трудно сказать, какой вид группы представляет строка. Например, строка с неопределенным значением birth_year может представлять группу с неопределенными годами рождения или группу, содержащую все возможные годы рождения. Чтобы различить группы, можно использовать функцию grouping.

В запросе с CUBE можно применять функцию grouping к любым столбцам или выражениям, используемым внутри операции CUBE. Как и в запросах с ROLLUP, если неопределенное значение выражения группировки имеет специальный смысл "все значения", функция grouping возвращает "1". Например, если grouping(sex) = 1, неопределенное значение столбца sex означает "оба пола". (Такая ситуация могла бы встретиться в строке, для которой данные группировались по году рождения, а не по полу.) Можно использовать функцию grouping внутри выражений CASE, чтобы выдавать на экран некоторое слово или символСимвол— особая коммуникационная модель, интегрирующая индивидуальные сознания в единое смысловое пространство культуры. Его функция связана с «интеграцией коллективного сознания в рамках единого смыслового пространства» и с «предельной индивидуализацией смысловых „миров“». Диалогическая структура символа выполняет интегративную и индивидуализирующую функции. для представления специального смысла "все значения". В следующем примере для этой цели используется "(-all-)". Нужно помнить, что в выражении CASE все возможные значения выражения должны иметь совместимые типы. В примере было необходимо использовать функцию char внутри CASE для преобразования year(birthdate) из целого типа в тип символьных строк, чтобы его тип был совместим со строкой "(-all-)".

SELECT CASE grouping(sex)
   WHEN 1 THEN '(-all-)'
   ELSE sex END AS sex,
 CASE grouping(year(birthdate))
   WHEN 1 THEN '(-all)'
   ELSE char(year(birthdate))
   END AS birth_year,
 max(income) AS max_income
 FROM census
 GROUP BY CUBE(sex, year(birthdate));

В таблице 5 показаны результаты этого запроса. Операция CUBE, примененная к n измерениям, будет генерировать 2n различных видов групп. Так, GROUP BY CUBE (sex, year(birthdate)) произвела бы трехмерный результат, содержащий восемь видов групп. К каждой группе можно обычным образом применить раздел HAVING.

SEX BIRTH_YEAR MAX_INCOME
F 1955 46700
F 1956 36300
F 1957 26500
F (null) 44700
M 1955 32100
M 1956 42500
M 1957 40200
F (-all-) 46700
M (-all-) 42500
(-all-) 1955 46700
(-all-) 1956 42500
(-all-) 1957 40200
(-all-) (null) 44700
(-all-) (-all-) 46700

Таблица 5. Результаты запроса с CUBE

GROUPING SETS

В предыдущих разделах обсуждалось, каким образом можно использовать операции ROLLUP и CUBE в разделе GROUP BY для выполнения детального анализа данных в одном или нескольких измерениях. DB2 UDB поддерживает также некоторые другие виды специальной группировки. Например, может понадобиться анализАнализ (др.-греч. — разложение, расчленение)— операция мысленного или реального расчленения целого (вещи, свойства, процесса или отношения между предметами) на составные части, выполняемая в процессе познания или предметно-практической деятельности человека.ировать данные в одном измерении без выполнения полного ROLLUP, анализировать несколько измерений без формирования полного CUBE или просто выполнять определенные виды группировки, которые приходят в голову. DB2 UDB позволяет точно специфицировать желаемые виды групп с помощью операции GROUPING SET.

Для использования GROUPING SETS нужно просто указать списокСписок— письменный перечень, число, состав; документ, содержащий перечень каких-либо сведений; в переносном смысле— буквальное, точное воспроизведение, копия; рукописная копия древнего памятника письменности. видов групп, которые должна сформировать системаСистема (от др.-греч. — «сочетание»)— множество взаимосвязанных элементов, обособленное от среды и взаимодействующее с ней, как целое.. Если некоторые критерии группировки включают более одного столбца или выражения, эти критерии заключаются в скобки. Можно использовать пустыеПустые (яп. уро, «пустота»; с помощью фуриганы получает прочтение [хоро:], от англ.hollow— «пустой»), «минусы»— вымышленные существа, злые духи в аниме и манге «Блич». Пустые живут в альтернативной реальности Уэко Мундо, которая находится между Землей и Сообществом душ («раем»). Они иногда отправляются в реальный мир, чтобы питаться душами живых людей; особенно опасны, так как большинство людей не могут их видеть. Чтобы справляться с пустыми, земной мир патрулируют проводники душ. Как и проводники душ, пустые отличаются друг от друга по боевым способностям. Некоторые, наиболее сильные, могут пользоваться уникальными боевыми приёмами, а эволюционировавшие пустые— арранкары,— получив часть способностей проводников душ, получают и возможность владеть мечом. скобки для обозначения единственной группы, которая охватывает всю таблицу. ЗапросЗапрос— это формулирование своей информационной необходимости пользователем некоторой базы данных, как, например, поисковой системы. Для составления запроса используется язык поисковых запросов. следующего примера разбивает данные переписиПерепись населения— единый процесс сбора, обобщения, анализа и публикации демографических, экономических и социальных данных населения, относящихся по состоянию на определённое время ко всем лицам в стране или чётко ограниченной её части. Как и в случае других переписей, по завершении переписей населения производится обработка и публикация собранных данных. на группы по state и sex, затем формирует другие группы по году рождения и в завершение формирует одну большую группу, состоящую из всей таблицы Census. Для каждой группы отображается число человекЧеловек разумный (лат.Homo sapiens) (в биологии)— вид рода Люди (Homo) из семейства гоминид в отряде приматов, единственный живущий в настоящее время. От современных человекообразных, помимо ряда анатомических особенностей, отличается значительной степенью развития материальной культуры (включая изготовление и использование орудий), способностью к членораздельной речи и абстрактному мышлению. Человек, как биологический вид— предмет исследования физической антропологии. Природа и сущность человека является предметом как философского, так и религиозного диспута. в группе и средняя сумма дохода группы. Как и раньше, в этом запросе используется функция grouping для отображения специальной строки, когда неопределенное значение имеет специальный смысл "все значения".

SELECT CASE grouping(state)
   WHEN 1 THEN '(-all-)'
   ELSE state END AS state,
 CASE grouping(sex)
   WHEN 1 THEN '(-all')
   ELSE sex END AS sex,
 CASE grouping(year(birthdate))
   WHEN 1 THEN '(-all)'
   ELSE char(year(birthdate))
   END AS birth_year,
  count(*) as count,
  avg(income) AS avg_income
 FROM census
 GROUP BY GROUPING SETS ((state, sex),
  year(birthdate), ());

В таблице 6 приведены результаты этого запроса. Общее число групп в этом результате есть сумма числа групп, произведенных по каждому из трех наборов группировки: (state, sex) производит четыре группы, year(birthdate) производит четыре группы и пустой набор группировки () производит одну группу, представляющую всю таблицу; всего образуется девять групп.

STATE SEX BIRTH_YEAR COUNT AVG_INCOME
FL F (-all-) 4 38350
FL M (-all-) 6 34333
TX F (-all-) 3 39750
TX M (-all-) 5 34620
(-all-) (-all-) 1955 6 37200
(-all-) (-all-) 1956 5 35920
(-all-) (-all-) 1957 6 33616
(-all-) (-all-) (null) 1 44700
(-all-) (-all-) (-all-) 18 36000

Таблица 6. Результаты запроса с GROUPING SETS

Множественные спецификации группировки

Теперь мы знаем, каким образом можно определять раздел GROUP BY для выполнения группировки по отдельным столбцам или выражениям, для проведения одномерного анализа с использованием ROLLUP или многомерного анализа с использованием CUBE, для создания произвольной коллекции групп с использованием GROUPING SETS. Требуется знать еще одну вещь: каким образом можно комбинировать эти возможности и использовать их совместно в одном разделе GROUP BY. Раздел GROUP BY может содержать несколько спецификаций группировки, разделенных запятыми. В каждой спецификации можно использовать любую из обсуждавшихся возможностей. Общее число групп, производимых разделом GROUP BY, получается путем перемножения числа групп, производимых каждой спецификацией группировки. Например, GROUP BY state производит три группы, и GROUP BY sex производит две группы, поэтому GROUP BY state, sex производит шесть групп. Аналогично, если GROUP BY ROLLUP (state, county) производит семь групп, и GROUP BY sex производит две группы, то GROUP BY ROLLUP (state, county), sex произведет 14 групп, формируемых по всем возможным комбинациям спецификаций группировки.

Синтаксическая диаграммаДиаграмма (греч. (diagramma) — изображение, рисунок, чертёж) — графическое представление данных, позволяющее быстро оценить соотношение нескольких величин. Представляет собой геометрическое символьное изображение информации с применением различных приёмов техники визуализации. на рис. 1 показывает, как можно использовать различные виды группировки в расширенном разделе GROUP BY. DB2 UDB также поддерживает некоторые комбинации методов группировки (например, можно использовать ROLLUP и CUBE внутри операции GROUPING SETS), но для упрощения они отсутствуют в диаграмме. В документации DB2 UDB содержится детальная информацияИнформация (от лат.informatio— осведомление, разъяснение, изложение, от лат.informare— придавать форму)— в широком смысле абстрактное понятие, имеющее множество значений, в зависимости от контекста. В узком смысле этого слова— сведения (сообщения, данные) независимо от формы их представления. Сведения об объектах живой или неживой природы, их свойств и взаимном влиянии друг на друга. об этих комбинациях.

схема

Рис. 1. В расширенном разделе GROUP BY возможны разные спецификации группировки

Действующий OLAP

Супергруппы в DB2 UDB являются мощным средством, позволяющим более просто выражать сложные аналитические запросы и дающим системе возможность более эффективно обрабатывать эти запросы. Используя супергруппы, можно выполнять многомерный анализ разного вида, который обычно связывается с отдельными продуктами хранилищ данных, напрямую над операционными данными базы данных DB2 UDB.

Эта статья основана на выдержках из последней книги Дона Чемберлина "A Complete Guide to DB2 Universal Database (Morgan Kaufmann, 1998), www.mkp.com.

 

Мы рекомендуем еще посмотреть:

Пресс-релизПресс-релиз— сообщение для прессы; информационное сообщение, содержащее в себе новость об организации (возможно и частном лице), выпустившей пресс-релиз, изложение её позиции по какому-либо вопросу и передаваемое для публикации в СМИ. для вывода на принтерВерсия для вывода на принтер

По итогам 2003 года s-networks назван компанией Cisco Systems лучшим российским дистрибутором - Distributor of the Year и получил звание Cisco MobilityДискография Моби
Vatican Commandos • Voodoo Child • Elektra Records • Mute Records • Техно • Электронная музыка
Partner

25 февраля 2004 г.

    КомпанияКомпания: (фр.compagnie — 1) общество, группа; 2) фирма, рота, экипаж корабля, театральная труппа) s-networks, ведущийВедущий— сотрудник СМИ (не обязательно штатный), который работает в кадре (ТВ) или эфире (радио), персонифицируя подаваемую информацию. дистрибуторДистрибьютор или дистрибутор (англ.distributor— распространитель)— фирма, осуществляющая оптовую закупку, или индивидуальный предприниматель, осуществляющий мелкооптовую или крупнооптовую закупку определённых товаров у крупных промышленных фирм-производителей с целью последующего сбыта этих товаров реселлерам или дилерам на региональных рынках. Может осуществлять свою деятельность как от своего, так и не от своего имени, но за свой счет. телекоммуникационных решений и приложений на российском рынке, объявляет о присвоении ей компанией Cisco Systems званияЗвание или чин — официально закрепленный государством уровень карьерного роста специалиста в разных областях. Distributor of the Year по итогам 2003 года. ЗваниеЗвание или чин — официально закрепленный государством уровень карьерного роста специалиста в разных областях. лучшего российского дистрибутора компания Cisco Systems присваивает компании s-networks неизменно из года в год, шесть лет подряд, с самого начала дистрибуции Cisco в России.

    Активная работа s-networks по продвижению новых технологий на российский рынок и, в частности беспроводных решений, отмечена компанией Cisco Systems еще в одной номинации – s-networks стал Партнером года в сфере мобильности (Mobility Partner).

    Сочетание накопленного практического опыта и фундаментальных знаний, а также способностьСпособности— это индивидуальные свойства личности, являющиеся субъективными условиями успешного осуществления определённого рода деятельности. Способности не сводятся к имеющимся у индивида знаниям, умениям, навыкам. Они обнаруживаются в быстроте, глубине и прочности овладения способами и приёмами некоторой деятельности и являются внутренними психическими регулятивами, обусловливающими возможность их приобретения. В отечественной психологии наибольший вклад в экспериментальные исследования способностей внес Б.М.Теплов. оперативно реагировать на изменения окружающего мира, позволяет компанииЮридическое лицо— созданная и зарегистрированная в установленном законом порядке организация, которая имеет в собственности, хозяйственном ведении или оперативном управлении обособленное имущество и отвечает по своим обязательствам этим имуществом, может от своего имени приобретать и осуществлять имущественные и личные неимущественные права, нести обязанности, быть истцом и ответчиком в суде. Юридические лица должны иметь самостоятельный баланс или смету. s-networks постоянно находиться на гребне современных телекоммуникаций, стабильно обеспечивая партнеров решениями, технологиями и оборудованием.

    s-networks постоянно повышает уровень теоретических и практических знаний своих специалистов и вкладывает в обучениеОбучение (в педагогике)— целенаправленный процесс двусторонней деятельности педагога и учащегося по передаче и усвоению знаний, умений, навыков. Одна из основных категорий педагогики. и подтверждение квалификации персонала значительные силы и средства. Кроме того, s-networks - один из старейших в России (c 1997 года) учебных центров Cisco Systems, имеющий сегодня статус Cisco Learning Partner.

***

    Компания s-networks – ведущий российский дистрибутор сетевого и телекоммуникационного оборудования лидеров мирового рынка: Cisco Systems, Avaya, Alcatel, Intel, TELiNDUS и ряда других. s-networks  инновационная компания, развивающая новаторские, наукоемкие и перспективные технологии. Партнеры s-networks: операторыОператор (позднелат.operator— работник, исполнитель, от operor— работаю, действую)— то же, что отображение в математике. связи, интеграторы, разработчики приложений и реселлеры из более 100 городов России и СНГ. Стратегия s-networks – cоздание для партнеров благоприятных условий для развития ими своего бизнеса.

Контактная информация  

Все пресс-релизы 

Поиск:
Авторизация
Логин
Пароль
Регистрация >
  Мероприятия « 2009 »   
« август » 
Пн  310172431
Вт  4111825 
Ср  5121926 
Чт  6132027 
Пт  7142128 
Сб 18152229 
Вс 29162330 
2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование