/ / Klassificering av typer av analytiska funktioner i Oracle. Analytiska funktioner i Oracle och huvudsakliga tekniska funktioner

Klassificering av typer av analytiska funktioner i Oracle. Analytiska funktioner i Oracle och viktiga tekniska funktioner

Oracles databashanteringssystem ären av de mest populära representanterna för sådan programvara. Det lockar många användare på grund av dess breda funktionalitet och betydande funktioner. Och detta är inte förvånande, för hur länge det har utvecklats! Så varför är Oracle intressant? De analytiska funktionerna i detta DBMS är en viktig del av de möjligheter som tillhandahålls. Och vi kommer att överväga dem inom ramen för denna artikel.

Allmän information

oracle analytiska funktioner
Inledningsvis bör det noteras att i Oracleanalytiska funktioner har specifika möjligheter men delar en gemensam syntax. För att förstå dem måste du förstå hur data:

  1. Sektion.
  2. Ordna.
  3. Ställ in fönster.

Boken togs som en teoretisk grundTom Kite. Materialet från det kommer att presenteras kort, och endast de viktigaste punkterna kommer att beaktas. Om du behöver detaljer kan du råda dig att kontakta källan. Men tro mig, all nödvändig information kommer att tillhandahållas i artikeln.

Om funktioner

oracle analytiska funktioner
Hur ser de ut?I Oracle byggs analytiska funktioner enligt följande princip: Namn (argument, ....) OVER (fragmentering, ordning, fönster). Hur förstår man att det är precis vad man behöver? Tack vare ordet ÖVER. Det låter dig identifiera den introducerade funktionen som en analytisk. Allt som kommer efter OVER är en beskrivning av datasegmentet som det kommer att beräknas på. Och nu några allmänna ord om klassificeringen. Konventionellt särskiljs fyra typer (beroende på vilka funktioner som tillhandahålls):

  1. rankningsfunktioner. De låter dig skapa "första N"-frågor.
  2. fönsterfunktioner. Nödvändigt för att beräkna olika aggregat (gruppverksamhet).
  3. Slutliga funktioner. I likhet med sid.2, men kan fungera med alla rader i en grupp eller sektion. Den viktigaste skillnaden är frånvaron av ORDER BY. Denna konstruktion används inte i OVER-operatorn. Om den inte finns, används den här funktionen i förhållande till varje rad i sektionen eller gruppen. Om det finns, appliceras det på fönstret, vilket innebär en övergång till en annan typ (se punkt 2).
  4. Statistiska funktioner. Exempel inkluderar STDEVJPOP, VAR_SAMP och andra. Låter dig beräkna statistiska värden för alla oordnade partitioner.

Generellt kan vi säga att den analytiska fungerarSQL Oracle har redan behandlats. Men bara i allmänna termer. Det finns ingen önskan att ge upp halvvägs, så låt oss detaljera. Och detta kommer att hjälpa Oracles analytiska funktioner, exempel på vilka nu kommer att övervägas.

Sektionering design

sql oracle analytiska funktioner
För att göra detta, använd en fråga i formen PARTITION BYuttryck[, …]. En sådan konstruktion utför en logisk uppdelning av den resulterande uppsättningen i vissa grupper, enligt kriterierna som sattes av partitioneringsuttrycken. Samtidigt tillämpas Oracles analytiska funktioner oberoende i förhållande till varje interaktionsämne. Det vill säga, efter att bearbetningen har slutförts, återställs de för den nya gruppen. Vad händer om ingen partitioneringskonstruktion anges? I det här fallet kommer den resulterande uppsättningen att betraktas som en grupp.

Beställ konstruktion

Använd i det här fallet en fråga i formuläret ORDER BYuttryck. Dessutom kan DESC, ASC och NULLS FIRST/LAST appliceras. Denna konstruktion används för att ställa in kriterierna för sortering av data i en sektion eller grupp. Användningen av ORDER BY kan avsevärt påverka resultatet som Oracle kommer att presentera. De analytiska funktionerna FIRST och LAST tittar till exempel på de första och sista elementen. Dvs de är motsatta i sin mening! Och vad säger FÖRSTA och SISTA oss? De anger var NULL-värdet ska vara i ordning, i början av avsnittet eller i slutet. Om du inte anger närvaron av ORDER BY kommer medelvärdet för hela gruppen att beräknas. Och det kommer att utfärdas för varje rad. Varför? Faktum är att i det här fallet betraktas funktionen som den sista. Det bör noteras att beställning sker uteslutande inom grupper eller sektioner.

fönsterdesign

exempel på oracle analytiska funktioner
Dess konstruktion är mycket komplex.I själva verket, med dess hjälp, ställs ett styvt fäst eller rörligt fönster (intervall, uppsättning) av data inom en sektion (grupp), med vilken den analytiska funktionen kommer att interagera. Du kan ställa in de nedre och övre gränserna för aggregeringen. Med andra ord, i sådana fall bestämmer vi oss för att tillämpa en analytisk funktion på varje rad i sektionen (gruppen) från X till Y. När du använder windows spelar ORDER BY en viktig roll. För hårdkodade intervall är standarden valet från den första till den aktuella raden i gruppen.

Varför analytiska funktioner är nödvändiga

Det tekniska målet är att tillhandahålla kortfattade formuleringar och bidra till snabbheten för att utföra databasfrågor. De har följande fördelar jämfört med konventionella SQL-satser:

  1. Minska belastningen på nätverket. Det som tidigare krävde en hel rad frågor kan nu hämtas från databasen i en.
  2. Lakonisk och enkel formulering. Detta har förbättrat felsökning och förståelse jämfört med traditionella verktyg.
  3. bearbetningseffektivitet. Analytiska funktioner har beräkningsalgoritmer som är optimerade för att ge resultat snabbare.
  4. Överför arbete till servern. Alla beräkningar utförs på servern, vars resurser vanligtvis är mer lämpade för denna uppgift.

Dessutom gjorde införandet av sådana funktioner det möjligt att uppnå ett sådant strategiskt mål som att tillhandahålla ett grundläggande verktyg för att bygga så kallade analytiska datalager.

slutsats

Oracle analytiska funktioner först
Vad kan man säga i slutet av artikeln?Analytiska funktioner är en mycket intressant lösning. För att bättre förstå deras detaljer kan du öva på att använda dem på komplexa och stora databaser. Som ett exempel för jämförelse kan du välja sådana traditionella funktioner som SUM, MAX och liknande. Men tänk samtidigt på att de fungerar som ett mellanresultat av beräkningar. Därför kan de endast användas med SELECT eller ORDER BY. Det bör erkännas att detta ämne är mycket intressant. Det finns ett stort antal variationer här, och det är problematiskt att teoretiskt beskriva dem alla. Det måste prövas och arbetas med förfrågningar.