Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Przedsmakrozwiązańwykorzystującychfunkcjeokna
19
ANDorderdate<'20190101')ASNUMERIC(5,2))ASpctall,
val-(SELECTAVG(O2ival)
FROMSalesiOrderValuesASO2
WHEREorderdate>='20180101'
ANDorderdate<'20190101')ASdiffall
FROMSalesiOrderValuesASO1
WHEREorderdate>='20180101'
ANDorderdate<'20190101';
Oczywiściemoglibyśmywprowadzićpewneusprawnienia,np.zdefiniowaćwspólne
wyrażenietabelaryczne(CommonTableExpressionCTE)odpowiedzialnezafiltro-
wanie,anastępnieodwołaćsiędotegowyrażeniaCTEwkwerendziezewnętrznej
orazwkwerendachpodrzędnych.Jednakfunkcjeoknaniewymagająmechanizmów
pomocniczychtegorodzaju,ponieważwykonywanenazbiorzewynikówkwerendy
.
Dodatkoweinformacjeotymaspekciefunkcjioknazaprezentujęwdalszejczęścitego
rozdziału.
Jakwspomniałemwcześniej,funkcjeoknazwyklełatwiejszewoptymalizacji
niżalternatywnerozwiązania.Oczywiściezdarzająsięwyjątki.Optymalizacjafunkcji
oknazostanieomówionawrozdziale5,natomiastwrozdziale6zaprezentujęszereg
przykładówilustrującychefektywnezastosowaniafunkcjiokna.
Przedsmakrozwiązań
wykorzystującychfunkcjeokna
Czterypierwszerozdziałyksiążkipoświęconezostałyopisowifunkcjioknaiichzasto-
sowań.Zaprezentowanymateriałmacharaktertechnicznyiniektóreosobymogą
postrzegaćjegolekturęjakonieconużącą.Czytelnikówzregułydużobardziejinte-
resująmetodystosowaniafunkcjidorozwiązywaniapraktycznychproblemów,które
zostanązademonstrowanewostatnimrozdziale.Jednakabyuświadomićsobieogrom-
nypotencjałfunkcjiokna,trzebazdawaćsobiesprawęzszerokiejgamyichzastoso-
wań.Chciałbymprzekonaćczytelników,żewartopoświęcićczasnazapoznaniesię
zaspektamitechnicznymiicierpliwiekontynuowaćlekturędoosiągnięciabardziej
interesującejczęściksiążki.Wtymcelujużterazpokażęprzedsmakrozwiązańwyko-
rzystującychfunkcjeokna.
Wyobraźmysobie,żemamyzazadaniepobraćdaneztabeli,wktórejwokreślonej
kolumnieprzechowywanajestsekwencja(ciąg)wartości,orazzidentyfikowaćciągłe
przedziałyistniejącychwartości.Tenproblemjestrównieżnazywanyproblememwysp.
Danewsekwencjimogąbyćtypunumerycznego,czasowego(najczęściejstosowanego)
lubinnegotypuwspierającegoporządekliniowy.Sekwencjamożezawieraćniepowta-
rzalnewartościlubzezwalaćnapowtórzenia.Interwałem(różnicą)możebyćdowolna
ustalonastałazgodnaztypemkolumny(np.liczbacałkowita1,liczbacałkowita7,
interwałczasowy1dzień,interwałczasowy2tygodnie).Wrozdziale6omówięróżne
wariantytegoogólnegoproblemu.Ponieważprzykładtensłużyjedyniedowstępnego