СКЛ ГРОУП БИ клаузула је моћан алат за груписање и агрегирање података. Пружа одличан начин груписања података на основу специфичних критеријума, а затим извођење радње на резултирајућим групама.
Један уобичајени случај употребе ГРОУП БИ је груписање по датумима. У овом водичу ћемо научити основе рада са клаузулом ГРОУП БИ и разговарати о томе како да је користимо за груписање података по датумима у СКЛ-у.
БЕЛЕШКА: Претпостављамо да имате основно разумевање СКЛ-а. У сврху демонстрације, користимо примере у овом туторијалу са МиСКЛ 8. Међутим, можете слободно да пренесете концепте овог упутства на друге машине базе података засноване на СКЛ-у.
Пример табеле:
Први корак је постављање основне табеле и узорака података за демонстрацију. Ако имате постојећу табелу са којом желите да радите, слободно прескочите овај одељак.
Да бисте креирали табелу, користите следећи упит:
ЦРЕАТЕ ТАБЛЕ трансакције (
ид инт не нулл ауто_инцремент примарни кључ,
датум ДАТУМ,
износ ДЕЦИМАЛ ( 10 , 2 )
) ;
Када направите табелу, уметните узорке података као што је приказано у наставку:
ВРЕДНОСТИ
( '2023-01-01' , 100,00 ) ,
( '2023-01-02' , 50.00 ) ,
( '2023-01-03' , 75,00 ) ,
( '2023-01-04' , 200,00 ) ,
( '2023-01-05' , 150,00 ) ,
( '2023-01-06' , 175,00 ) ,
( '2023-01-07' , 50.00 ) ,
( '2023-01-08' , 100,00 ) ,
( '2023-01-09' , 25.00 ) ,
( '2023-01-10' , 75,00 ) ,
( '2023-01-11' , 150,00 ) ,
( '2023-01-12' , 200,00 ) ,
( '2023-01-13' , 250,00 ) ,
( '2023-01-14' , 175,00 ) ,
( '2023-01-15' , 150,00 ) ,
( '2023-01-16' , 100,00 ) ,
( '2023-01-17' , 50.00 ) ,
( '2023-01-18' , 75,00 ) ;
Ово би требало да додате насумичне податке у табелу трансакција. Можемо користити наредбу селецт да прикажемо резултујућу табелу на следећи начин:
изаберите * од трансакција;
Табела излаза:
Када припремимо податке, можемо прећи на следећи корак.
СКЛ група по датуму
Као што можете да претпоставите, користимо клаузулу ГРОУП БИ да поделимо податке у датој табели на основу одређених вредности. Синтакса клаузуле је следећа:
СЕЛЕЦТ колона1, колона2, ...ФРОМ име_табеле
ГРОУП БИ колона1, колона2, ...;
У претходној синтакси користимо клаузулу ГРОУП БИ да наведемо колоне према којима желите да групишете податке.
Из претходне табеле можемо да користимо колону датума да групишемо податке као што је приказано у следећем упиту:
СЕЛЕЦТ датум , СУМ ( износ ) као Укупан износИЗ трансакција
ГРУПА ОД датум ;
Претходни упит обавља основне прорачуне и додаје укупан износ за сваки дан користећи функцију сум(). Затим групишемо податке на основу вредности датума. Добијена табела је следећа:
Формат Дате
Понекад ћемо можда морати да форматирамо датум и учинимо га читљивијим. Пример је следећи:
СЕЛЕЦТ ДАТЕ_ФОРМАТ ( датум , '%м/%д/%И' ) као форматирани_датум, СУМ ( износ ) као Укупан износИЗ трансакција
ГРУПА ОД датум ;
Ово би требало да врати вредности датума у наведеном формату на следећи начин:
Опсег датума СКЛ филтера
Такође можемо да филтрирамо скуп резултата према распону датума помоћу клаузуле ВХЕРЕ. Пример је следећи:
СЕЛЕЦТ ДАТЕ_ФОРМАТ ( датум , '%м/%д/%И' ) као форматирани_датум, СУМ ( износ ) као Укупан износИЗ трансакција
ГДЕ датум ИЗМЕЂУ '2023-01-01' И '2023-01-15'
ГРУПА ОД датум ;
Добијена табела је приказана у наставку:
То је то! Начин груписања података из дате табеле на основу вредности датума.
Закључак
Овај водич је истраживао основе рада са клаузулом ГРОУП БИ у СКЛ-у за сортирање података на основу одређених вредности. Ово нам је омогућило да покријемо како да користимо клаузулу ГРОУП БИ да поделимо податке на основу вредности датума.