СКЛ ПАРТИТИОН БИ клаузула

Skl Partition Bi Klauzula



У СКЛ-у, ПАРТИТИОН БИ клаузула нам омогућава да поделимо или партиционишемо скуп резултата датог упита у различите групе на основу једне или више колона. Добијене партиције могу бити веома корисне, посебно када треба да извршите прорачуне за сваку партицију (појединачно) или примените агрегатне функције унутар сваке групе.

У овом водичу ћемо научити о раду клаузуле ПАРТИТИОН БИ у СКЛ-у и открити како је можемо користити за партиционисање података за детаљнији подскуп.

Синтакса:

Почнимо са синтаксом ПАРТИТИОН БИ клаузуле. Синтакса може зависити од контекста у којем је користите, али ево опште синтаксе:







СЕЛЕЦТ колона 1, колона 2, ...

ПРЕКО (ПАРТИТИОН БИ партитион_цолумн1, партитион_цолумн2, ...)

ФРОМ име_табеле

Дата синтакса представља следеће елементе:



  1. колона1, колона2 – Ово се односи на колоне које желимо да укључимо у скуп резултата.
  2. ПАРТИЦИЈА ПО колонама – Ова клаузула дефинише како желимо да поделимо или групишемо податке.

Примјера података

Хајде да направимо основну табелу са примером података да бисмо показали како се користи клаузула ПАРТИТИОН БИ. За овај пример, хајде да направимо основну табелу која чува информације о производу.



ЦРЕАТЕ ТАБЛЕ производи (
продуцт_ид ИНТ ПРИМАРИ КЕИ АУТО_ИНЦРЕМЕНТ,
назив_производа ВАРЦХАР( 255 ),
категорија ВАРЦХАР( 255 ),
цена ДЕЦИМАЛ( 10 , 2 ),
количина ИНТ,
екпиратион_дате ДАТЕ,
бар код БИГИНТ
);

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Куварска капа 25цм' ,
'пекара' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Препелица јаја - конзервирана' ,
'остава' ,
17.99 ,
67 ,
'2023-09-29' ,
1708039594250 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Кафа - Егг Ног Цапуццино' ,
'пекара' ,
92.53 ,
10 ,
'2023-09-22' ,
8704051853058 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'крушка - бодљикава' ,
'пекара' ,
65.29 ,
48 ,
'2023-08-23' ,
5174927442238 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Паста - Анђеоска коса' ,
'остава' ,
48.38 ,
59 ,
'2023-08-05' ,
8008123704782 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Вино - Просеццо Валдобиаддене' ,
'произвести' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Пециво - француски мини асортиман' ,
'остава' ,
36.73 ,
52 ,
'2023-05-29' ,
5963886298051 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Наранџа - конзервирана, мандарина' ,
'произвести' ,
65.0 ,
1 ,
'2023-04-20' ,
6131761721332 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Свињетина - плећка' ,
'произвести' ,
55.55 ,
73 ,
'2023-05-01' ,
9343592107125 );

уметнути
у
производи (назив_производа,
категорија,
Цена,
количина,
Рок употребе,
бар код)
вредности ( 'Дц Хикиаге Хира Хуба' ,
'произвести' ,
56.29 ,
53 ,
'2023-04-14' ,
3354910667072 );

Када добијемо узорак подешавања података, можемо наставити и користити клаузулу ПАРТИТИОН БИ.





Основна употреба

Претпоставимо да желимо да израчунамо укупне ставке за сваку категорију производа у претходној табели. Можемо користити ПАРТИТИОН БИ да поделимо ставке у јединствене категорије и затим одредимо укупну количину у свакој категорији.

Пример је следећи:



СЕЛЕЦТ
Назив производа,
категорија,
количина,
СУМ(количина) ПРЕКО (ПОДЕЉЕНА ПО категорији) КАО укупно_ставки
ИЗ
производи;

Приметите да у датом примеру податке делимо помоћу колоне „категорија“. Затим користимо агрегатну функцију СУМ() да одредимо укупне ставке у свакој категорији посебно. Резултат показује укупан број ставки у свакој категорији.

Коришћење клаузуле ПАРТИТИОН БИ

Да резимирамо, најчешћи случај употребе клаузуле ПАРТИТИОН БИ је у спрези са функцијама прозора. Функција прозора се примењује на сваку партицију посебно.

Неке од уобичајених функција прозора које се користе са ПАРТИТИОН БИ укључују следеће:

  • СУМ() – Израчунајте збир колоне унутар сваке партиције.
  • АВГ() – Израчунајте просек колоне унутар сваке партиције.
  • ЦОУНТ() – Пребројите број редова унутар сваке партиције.
  • РОВ_НУМБЕР() – Доделите јединствени број реда сваком реду унутар сваке партиције.
  • РАНК() – Додели ранг сваком реду унутар сваке партиције.
  • ДЕНСЕ_РАНК() – Доделите густ ранг сваком реду унутар сваке партиције.
  • НТИЛЕ() – Поделите податке на квантиле унутар сваке партиције.

То је то!

Закључак

У овом водичу смо научили како да радимо са ПАРТИТИОН БИ клаузулом у СКЛ-у да бисмо поделили податке на различите сегменте, а затим применили одређену операцију на сваку од резултујућих партиција посебно.