СКЛ Пивот - знајте како претворити редове у колоне



Овај чланак о СКЛ Пивот-у је свеобухватан водич за претварање података на нивоу реда у податке у ступцима са детаљним примерима.

Релацијски складиштити огромне количине података у облику табела. Ове табеле могу имати било који број редова и колона. Али, шта ако бисте морали да промените податке на нивоу реда у колонасте податке? Па, у овом чланку о СКЛ Пивот-у, показаћу вам како можете да претворите редове у колону на СКЛ серверу.

У овом чланку биће обрађене следеће теме:





Шта је ПИВОТ у СКЛ-у?

ПИВОТ се користи за ротирање вредности табеле претварањем јединствених вредности једне колоне у више колона. Користи се за ротирање редова према вредностима колона и покретање агрегација када је потребно на преосталим вредностима колона.

УНПИВОТ се, пак, користи за извођење супротних операција. Дакле, користи се за претварање колона одређене табеле у вредности колона.



Настављајући даље у овом чланку, хајде да разумемо синтаксу СКЛ Пивот-а.

Синтакса:

СЕЛЕЦТ НонПивотед ЦолумнНаме, [Фирст Пивотед ЦолумнНаме] АС ЦолумнНаме, [Сецонд Пивотед ЦолумнНаме] АС ЦолумнНаме, [Тхирд Пивотед ЦолумнНаме] АС ЦолумнНаме, ... [Ласт Пивотед ЦолумнНаме] АС ЦолумнНАМЕ ФРОМ (СЕЛЕЦТ упит који производи податке) АС [алиас за почетни упит] ПИВОТ ([АггрегатионФунцтион] (ЦолумНаме) ФОР [ЦолумнНаме ступца чије ће вредности постати заглавља ступаца] ИН ([Фирст Пивотед ЦолумнНаме], [Сецонд Пивотед ЦолумнНаме], [Тхирд Пивотед ЦолумнНаме] ... [ласт пивотирана колона])) КАО [псеудоним за пивот табелу]

Ево,такође можете користити Клаузула ОРДЕР БИ да бисте сортирали вредности у растућем или силазном редоследу. Сад кад знате шта је ПИВОТ у СКЛ-у и његова основна синтакса, померимо се напред и видећемо како га користити.

Примери

Ради вашег бољег разумевања, размотрићу следећу табелу да бих вам објаснио све примере.



Табела добављача:

СупплиерИД ДаисофМануфацтуре Трошак Идентификација купца ПурцхасеИД
један121230ЈеданаестП1
2двадесет један154322П2
3322. 3. 4. 5ЈеданаестП3
414876522П1
542345233П3
631543133П1
7412342ЈеданаестП2
854365422П2
9331234ЈеданаестП3
1056683233П2

Допустите нам да напишемо једноставан упит како бисмо добили просечне трошкове које потроши сваки купац.

ОДАБЕРИТЕ ИД купца, просечно (трошак) КАО Просечни трошак купца ОД ГРАДИТЕЉА ГРУПА ПО ИД купца

Излаз:

Идентификација купца АверагеЦостофЦустомер
Једанаест1787.75
224654
335238.33

Сада, рецимо да желимо да окренемо горњу табелу. Овде ће вредности ЦустомерИД колоне постати заглавља колона.

- Направите пивот табелу са једним редом и три колоне СЕЛЕЦТ 'АверагеЦостофЦустомер' АС Цост_Аццординг_То_Цустомерс, [11], [22], [33] ОД (СЕЛЕЦТ ЦустомерИД, Цост ФРОМ Супплиерс) КАО СоурцеТабле ПИВОТ (АВГ (Цост) ФОР ЦустомерИД ИН ( [11], [22], [33])) КАО изведена табела

Излаз:

Цост_Аццординг_То_Цустомерс Једанаест2233
АверагеЦостофЦустомер 1787.7546545238.33

Белешка: Када користите агрегатне функције са ПИВОТ, нулл вредности се не узимају у обзир током израчунавања агрегације.

Па, то је био основни пример, али хајде да сада разумемо како је функционисала клаузула ПИВОТ.

Рад клаузуле ПИВОТ

Као што се горе можете позвати, да бисте креирали ПИВОТНУ ТАБЕЛУ, морате следити кораке у наставку:

  • Изаберите колоне за окретање
  • Затим одаберите изворну табелу.
  • Примијените ПИВОТ оператор, а затим употријебите агрегатне функције.
  • Спомените пивот вредности.

Изаберите колоне за окретање

У почетку морамо да одредимо поља која ће бити укључена у наше резултате. У нашем примеру сам разматрао колону АверагеЦостофЦустомер у пивот табели. Затим смо креирали још три колоне са заглављима колона 11, 22 и 33. Пример-

СЕЛЕЦТ 'АверагеЦостофЦустомер' КАО Цост_Аццординг_То_Цустомерс, [11], [22], [33]

Изаберите изворну табелу

Даље, морате навести израз СЕЛЕЦТ који ће вратити изворне податке за пивот табелу. У нашем примеру враћамо ИД купца и трошкове из табеле Добављачи.

(ОДАБЕРИТЕ ИД купца, трошак од добављача) КАО Изворна табела

Примијените ПИВОТ оператор, а затим употријебите агрегатне функције

Даље, морате навести агрегатну функцију која ће се користити током креирања пивот табеле. У нашем примеру сам користио функцију АВГ за израчунавање просечних трошкова.

ПИВОТ (АВГ (трошак)

Спомените пивот вредности

На крају, морате споменути вредности које морају бити укључене у резултирајућу стожерну табелу. Ове вредности ће се користити као наслови колона у пивот табели.

ЗА ЦустомерИД ИН ([11], [22], [33])) КАО изведена табела

Тако раде ПИВОТ оператори. Настављајући даље у овом чланку о СКЛ ПИВОТ-у, схватимо колико се разликује од СКЛ УНПИВОТ-а.

СКЛ УНПИВОТ

СКЛ УНПИВОТ оператор се користи за извршавање операција супротних операцијама ПИВОТ-а. Користи се за ротирање података из колоне у податке на нивоу реда. Синтакса УНПИВОТ-а слична је синтакси ПИВОТ-а. Једина разлика је у томе што морате да користите ' УНПИВОТ ” .

Пример:

Креирајмо табелу са колонама СупплиерИД, ААА, БББ и ЦЦЦ. Такође унесите неколико вредности.

ЦРЕАТЕ ТАБЛЕ самплетабле (СупплиерИД инт, ААА инт, БББ инт, ЦЦЦ инт) ИДИ ИНСЕРТ ИНТО самплеабле ВАЛУЕС (1,3,5,6) ИНСЕРТ ИНТО самплеабле ВАЛУЕС (2,9,2,8) ИНСЕРТ ИНТО самплеабле ВАЛУЕС (3, 8,1,7) ИДИТЕ

Излаз:

СупплиерИД ААА БББ ЦЦЦ
један356
2928
38један7

Рецимо сада, желимо да уклонимо табелу. Да бисте то урадили, можете се позвати на следећи код:

СЕЛЕЦТ ИД добављача, купци, производи ОД (СЕЛЕЦТ добављачаД, ААА, БББ, ЦЦЦ ИЗ узорка) п УНПИВОТ (производи за купце у (ААА, БББ, ЦЦЦ)) КАО пример ГО
СупплиерИД Купци Производи

један

ААА

3

један

БББ

5

један

дубока копија вс плитка копија јава

ЦЦЦ

6

2

ААА

9

2

БББ

2

2

ЦЦЦ

8

3

ААА

8

3

БББ

један

3

ЦЦЦ

7

Тако можете да користите СКЛ ПИВОТ и УНПИВОТ. Овим смо дошли до краја овог чланка. Надам се да сте разумели како се користи СКЛ. Ако желите да сазнате више о МиСКЛ и упознајте ову релациону базу података отвореног кода, а затим погледајте нашу који долази са обуком уживо коју воде инструктори и искуством у стварном животу. Овај тренинг ће вам помоћи да дубље разумете МиСКЛ и да вам помогне да савладате тему.

Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог чланка о СКЛ Пивот-у и јавићу вам се.