Monday, October 24, 2016

Bewegende gemiddelde oracle funksie

Bewegende gemiddelde - MA afbreek bewegende gemiddelde - MA As SMA voorbeeld, kyk na 'n sekuriteit met die volgende sluitingsdatum pryse meer as 15 dae: Week 1 (5 dae) 20, 22, 24, 25, 23 Week 2 (5 dae) 26, 28, 26, 29, 27 Week 3 (5 dae) 28, 30, 27, 29, 28 A 10-dag MA sou gemiddeld uit die sluitingsdatum pryse vir die eerste 10 dae as die eerste data punt. Die volgende data punt sal daal die vroegste prys, voeg die prys op dag 11 en neem die gemiddelde, en so aan, soos hieronder getoon. Soos voorheen verduidelik, MA lag huidige prys aksie omdat dit gebaseer is op vorige pryse hoe langer die tydperk vir die MA, hoe groter is die lag. So sal 'n 200-dag MA 'n veel groter mate van lag as 'n 20-dag MA het omdat dit pryse vir die afgelope 200 dae bevat. Die lengte van die MA om te gebruik, hang af van die handel doelwitte, met korter MA gebruik vir 'n kort termyn handel en langer termyn MA meer geskik vir 'n lang termyn beleggers. Die 200-dag MA word wyd gevolg deur beleggers en handelaars, met onderbrekings bo en onder hierdie bewegende gemiddelde beskou as belangrike handel seine wees. MA ook mee belangrik handel seine op hul eie, of wanneer twee gemiddeldes kruis. 'N stygende MA dui daarop dat die sekuriteit is in 'n uptrend. terwyl 'n dalende MA dui daarop dat dit in 'n verslechtering neiging. Net so, is opwaartse momentum bevestig met 'n lomp crossover. wat gebeur wanneer 'n korttermyn-MA kruisies bo 'n langer termyn MA. Afwaartse momentum bevestig met 'n lomp crossover, wat plaasvind wanneer 'n kort termyn MA kruisies onder 'n langer termyn MA. If jy hierdie boodskap sien, die leser óf het afgeskakel of ondersteun nie JavaScript. Om die volle kenmerke van hierdie hulpstelsel, soos soek gebruik, moet u blaaier het Javascript ondersteuning aangeskakel. Geweegde bewegende gemiddeldes met 'n eenvoudige Bewegende Gemiddeldes, is elke datawaarde in die quotwindowquot waarin die berekening uitgevoer word gegee 'n gelyke belang of gewig. Dit is dikwels die geval is, veral in die finansiële prys data-ontleding, wat meer kronologies onlangse data 'n groter gewig moet dra. In sulke gevalle, Geweegde bewegende gemiddelde (of eksponensiële bewegende gemiddelde - sien die volgende onderwerp) funksie word dikwels verkies. Kyk na die tafel van verkope data waardes vir twaalf maande: Om 'n Geweegde bewegende gemiddelde te bereken: Bereken hoeveel intervalle van data deelneem aan die bewegende gemiddelde berekening (dit wil sê die grootte van die berekening quotwindowquot). As die venster berekening word gesê N wees, dan is die mees onlangse data waarde in die venster word vermenigvuldig met N, die volgende mees onlangse vermenigvuldig met N-1, die waarde voor dit vermenigvuldig met N-2 en so aan vir alle waardes in die venster. Verdeel die som van al die menigvuldige waardes deur die som van die gewigte aan die Geweegde bewegende gemiddelde oor die venster gee. Plaas die Geweegde bewegende gemiddelde waarde in 'n nuwe kolom volgens die sleep gemiddeldes posisionering hierbo beskryf. Om hierdie stappe te illustreer, te oorweeg as 'n 3-maande Geweegde bewegende gemiddelde van verkope in Desember vereis (met behulp van die bostaande tabel van Verkope waardes). Die term quot3-monthquot impliseer dat die berekening quotwindowquot is 3, dus die geweegde bewegende gemiddelde berekening algoritme vir hierdie geval behoort te wees: Of, as 'n 3-maande Geweegde bewegende gemiddelde is geëvalueer oor die hele oorspronklike reeks data, sal die resultate wees : 3 maande geweeg Moving AverageHow 'n SQL bewegende gemiddelde sonder 'n wyser werk Bereken: As jy besig is met die nuutste weergawes van SQL Server, kan jy die windows funksies gebruik om dieselfde ding te bewerkstellig. Ek gepos word om die updated kode aan die einde van die post. Om hierdie video, ek nog graag die denkproses van anker om 'n datum. Video: 3 daagse bewegende gemiddelde in SQL 'n doeltreffende manier om 'n bewegende gemiddelde in SQL te bereken met behulp van 'n paar truuks op datum ankers stel. Daar is debatte oor die beste manier om 'n SQL bewegende gemiddelde in SQL Server doen. Sommige mense dink daar is tye wanneer 'n wyser is mees doeltreffende. Ander dink dat jy dit alles kan doen in 'n stel wat gebaseer is weg sonder die wyser. Die ander dag het ek gaan 'n bewegende gemiddelde te bereken en my eerste gedagte was om 'n wyser gebruik. Ek het 'n paar vinnige navorsing en het gevind dat hierdie forum vraag: Moving Gemiddelde in TSQL Daar is 'n pos wat 'n subquery met 'n anker datum te help vind die 1 en 2 dag geneutraliseer toon. Hier is die skrif wat jy kan gebruik om die 3 dag SQL Gemiddeld finale uitslag Moving toets. Hier is die finale navraag. Hier is die vraag wat jy sou gebruik met SQL Server 2012. Deel hierdie: AVG (Transact-SQL) ALLE Pas die totale funksie om alle waardes. Alles is die verstek. DISTINCT dui daarop dat, AVG uitgevoer word slegs op elke unieke geval van 'n waarde, ongeag hoeveel keer die waarde voorkom. uitdrukking is 'n uitdrukking van die presiese numeriese of geskatte numeriese data tipe kategorie, behalwe vir die tipe bietjie data. Totaal funksies en subqueries is nie toegelaat nie. OOR (partitionbyclause orderbyclause) partitionbyclause verdeel die resultaat stel wat deur die VANAF klousule in mure waaraan die funksie toegepas word. As nie gespesifiseer, die funksie behandel alle rye van die navraag gevolg gestel as 'n enkele groep. orderbyclause bepaal die logiese volgorde waarin die operasie uitgevoer word. orderbyclause word vereis. Vir meer inligting, sien OOR klousule (Transact-SQL). Die tipe terugkeer word bepaal deur die tipe van die geëvalueer gevolg van uitdrukking. desimale kategorie (p, s) As die tipe data van uitdrukking is 'n alias data tipe, die soort opbrengs is ook van die tipe alias data. Maar, as die tipe basis data van die alias datatipe bevorder, byvoorbeeld uit tinyint om Int. die terugkeer waarde is van die bevorder datatipe en nie die alias datatipe. AVG () bere die gemiddelde van 'n stel waardes wat deur die som van die waardes te deel deur die telling van nonnull waardes. As die som groter as die maksimum waarde vir die tipe data van die terugkeer waarde 'n fout sal teruggestuur word. AVG is 'n deterministiese funksie wanneer dit gebruik word sonder die oor en ORDER BY klousules. Dit is deterministiese wanneer gespesifiseerde met die oor en ORDER BY klousules. Vir meer inligting, sien Deterministiese en deterministiese funksies. A. Die gebruik van die som en AVG funksies vir berekeninge Die volgende voorbeeld word bereken dat die gemiddelde vakansie-ure en die som van siekteverlof ure wat die vise-presidente van Avontuur Werke Cycles gebruik. Elkeen van hierdie totaal funksies produseer 'n enkele opsomming waarde vir al die opgespoor rye. Die voorbeeld gebruik die AdventureWorks2012 database.21 SQL vir verwerking en rapportering Behandeling van NULLs as invoer tot Venster Funksies Venster funksies NULL semantiek ooreenstem met die NULL semantiek vir SQL totale funksies. Ander semantiek kan verkry word deur die gebruiker-gedefinieerde funksies, of deur die gebruik van die DECODE of 'n saak uitdrukking binne die venster funksie. Windows Funksies met Logiese Offset n logiese geneutraliseer kan word vermeld met konstantes soos REEKS 10 VOORGAANDE. of 'n uitdrukking wat evalueer om 'n konstante, of deur 'n interval spesifikasie soos REEKS INTERVAL N dag / maand / jaar voor of 'n uitdrukking wat evalueer om 'n interval. Met logiese verreken, kan daar net een uitdrukking in die ORDER BY uitdrukking lys in die funksie wees, met tipe versoenbaar te NUMERIC as geneutraliseer is numeriese, of 'n datum as 'n interval gespesifiseer. Voorbeeld 21-7 Kumulatiewe Totale Function Die volgende is 'n voorbeeld van kumulatiewe amountsold deur kliënt ID deur kwartaal in 1999: In hierdie voorbeeld, die analitiese funksie som definieer, vir elke ry, 'n venster wat begin by die begin van die verdeling (ongeleide VOORGAANDE ) en eindig by verstek teen die huidige ry. Geneste som s is nodig in hierdie voorbeeld aangesien ons vaar 'n bedrag meer as 'n waarde wat op sigself 'n som. Geneste riffen word dikwels gebruik in analitiese totale funksies. Voorbeeld 21-8 Moving Totale Function Hierdie voorbeeld van 'n tyd-gebaseerde venster toon, vir 'n kliënt, die bewegende gemiddelde van verkope vir die huidige maand en voorafgaande twee maande: Let daarop dat die eerste twee rye vir die drie maande bewegende gemiddelde berekening in die uitset data is gebaseer op 'n kleiner interval grootte as gespesifiseerde omdat die venster berekening nie kan bereik verby die opgespoor deur die navraag data. Jy moet die verskillende venster groottes gevind by die grense van gevolg stelle oorweeg. Met ander woorde, moet jy dalk die navraag verander om in te sluit presies wat jy wil. Gesentreer Totale Function berekening te venster totaal funksies gesentreer rondom die huidige ry is eenvoudig. Hierdie voorbeeld bere vir alle kliënte 'n gesentreerde bewegende gemiddelde van verkope vir 'n week in die einde van Desember 1999. Dit vind 'n gemiddeld van die verkope totaal vir die eendag die huidige ry en een dag na die huidige ry insluitend die huidige ry sowel voorafgaande. Voorbeeld 21-9 gesentreerde Totale Die begin - en rye vir elke produkte gesentreer bewegende gemiddelde berekening in die uitset data is gebaseer op slegs twee dae, sedert die venster berekening nie kan bereik verby die opgespoor deur die navraag data. Gebruikers moet die ander venster groottes gevind by die grense van gevolg stelle oorweeg: die navraag kan aangepas moet word. Windows Totale funksies in die teenwoordigheid van Duplikate Die volgende voorbeeld illustreer hoe venster totaal funksies te bereken waardes wanneer daar duplikate, dit is, wanneer verskeie rye terug vir 'n enkele bestel waarde. Die navraag gekry die verkoop aan verskeie kliënte hoeveelheid tydens 'n bepaalde tyd reeks. (Alhoewel ons 'n geïntegreerde siening te gebruik om ons basis datastel te definieer, dit het geen spesiale betekenis en kan geïgnoreer word.) Die vraag definieer 'n bewegende venster wat strek vanaf die datum van die huidige ry tot 10 dae earlier. Note dat die reeks navraag word gebruik om die windows klousule van hierdie voorbeeld te definieer. Dit beteken dat die venster potensieel kan hou baie rye vir elke waarde in die reeks. In hierdie geval, is daar drie pare rye met dubbele datum waardes. Voorbeeld 21-10 windows Totale Funksies met Logiese Offsets In die produksie van hierdie voorbeeld, al datums behalwe 6 Mei en 12 Mei terugkeer twee rye met dubbele datums. Kyk na die kommentaar nommers aan die regterkant van die uitvoer om te sien hoe die waardes bereken. Let daarop dat elke groep in hakies verteenwoordig die waardes teruggekeer vir 'n enkele dag. Let daarop dat hierdie voorbeeld is van toepassing slegs wanneer jy die reeks navraag eerder gebruik as die plantrye gebruik navraag. Dit is ook belangrik om te onthou dat met die reeks. jy kan net 1 ORDER BY uitdrukking in die analitiese funksies ORDER BY klousule. Met Die rye navraag, kan jy verskeie volgorde gebruik deur uitdrukkings in die analitiese funksies ORDER BY klousule. Wisselende venster grootte vir elke ry Daar is situasies waar dit nuttig om die grootte van 'n venster vir elke ry, gebaseer op 'n bepaalde toestand wissel. Byvoorbeeld, kan jy die venster groter vir sekere datums en kleiner vir ander te maak. Aanvaar dat jy die bewegende gemiddelde van aandele prys te bereken oor drie werksdae. As jy 'n gelyke aantal rye vir elke dag vir al werksdae en geen nie-werksdae gestoor word, dan kan jy 'n fisiese venster funksie gebruik. Maar, as die bekende voorwaardes nie nagekom word nie, kan jy nog steeds bereken 'n bewegende gemiddelde met behulp van 'n uitdrukking in die venster grootte parameters. Uitdrukkings in 'n venster grootte spesifikasie kan gemaak word in verskillende bronne. die uitdrukking kan 'n verwysing na 'n kolom in 'n tabel, soos 'n rooster. Dit kan ook 'n funksie wat die toepaslike grens vir die venster wat gebaseer is op waardes in die huidige ry terug wees. Die volgende verklaring vir 'n hipotetiese aandeelprys databasis gebruik 'n gebruiker-gedefinieerde funksie in sy reeks klousule venster grootte te stel: In hierdie stelling, ttimekey is 'n datum in die veld. Hier, FN kan 'n PL / SQL funksie met die volgende spesifikasie wees: 4 As ttimekey is Maandag, Dinsdag Indien enige van die vorige dae is openbare vakansiedae, dit pas die telling gepas. Let daarop dat, wanneer venster gespesifiseer deur 'n nommer in 'n venster funksie met ORDER BY op 'n datum kolom, dan is dit omgeskakel word na die aantal dae beteken. Jy kan ook gebruik word om die interval letterlike omskakeling funksie, soos NUMTODSINTERVAL (FN (ttimekey), DAG) in plaas van net fn (ttimekey) om dieselfde ding beteken. Jy kan ook skryf 'n PL / SQL funksie wat 'n interval data type waarde terug. Windows Totale Funksies met Fisiese Offsets vir Windows uitgedruk in rye, moet die ordening uitdrukkings uniek aan deterministiese resultate te lewer nie. Byvoorbeeld, die volgende navraag is nie deterministiese omdat timeid is nie uniek in hierdie resultaat stel. Voorbeeld 21-11 windows Totale Funksies met fisieke Offsets Een manier om hierdie probleem te hanteer sou wees om die prodid kolom toe te voeg tot die gevolg stel en orde aan albei timeid en prodid. FIRSTVALUE en LASTVALUE Funksies Die FIRSTVALUE en LASTVALUE funksies toelaat om die eerste en laaste rye van 'n venster te kies. Hierdie rye is veral waardevol omdat hulle dikwels gebruik word as die basislyne in berekeninge. Byvoorbeeld, met 'n verdeling hou verkope data bestel oordag, kan jy vra hoeveel is elk dae verkope in vergelyking met die eerste verkope dag (FIRSTVALUE) van die tydperk of jy kan wens om te weet, vir 'n stel van rye in die verhoging van verkope orde Wat was die persentasie grootte van elke koop in die streek in vergelyking met die grootste verkope (LASTVALUE) in die streek As die NULLS opsie IGNOREER gebruik met FIRSTVALUE. Dit sal die eerste nie-nul waarde terug in die stel, of NULL as alle waardes is NULL. As IGNOREER NULLS gebruik met LASTVALUE. Dit sal die laaste nie-nul waarde terug in die stel, of NULL as alle waardes is NULL. Die IGNOREER NULLS opsie is veral nuttig in mense aan 'n inventaris tafel behoorlik. Verslagdoening Totale Funksies Na 'n soektog verwerk is, kan totaal waardes soos die aantal lei rye of 'n gemiddelde waarde in 'n kolom maklik bereken word binne 'n partisie en beskikbaar is om ander verslagdoening funksies gemaak. Verslagdoening totaal funksies terugkeer dieselfde gemiddelde waarde vir elke ry in 'n partisie. Hul gedrag met betrekking tot NULLs is dieselfde as die SQL totale funksies. Die sintaksis is: In Daarbenewens het die volgende voorwaardes geld: 'n asterisk () is slegs toegelaat in COUNT () DISTINCT ondersteun slegs indien ooreenstemmende totaal funksies toelaat dat dit waarde expression1 en waarde expression2 kan enige geldige uitdrukking wat kolom verwysings of aggregate wees. Die afsluiting met klousule omskryf die groepe waarop die windows funksies sal bereken word. As die afsluiting met klousule afwesig is, dan is die funksie word bereken oor die hele navraag gevolg stel. Verslagdoening funksies kan verskyn net in die SELECT klousule of die ORDER BY klousule. Die groot voordeel van verslagdoening funksies is hul vermoë om verskeie passe van data te doen in 'n enkele navraag blok en bespoedig navraag prestasie. Navrae soos Tel die aantal handelaars met verkope van meer as 10 van die stad verkoop nie vereis sluit tussen aparte navraag blokke. Byvoorbeeld, kyk na die vraag vir elke produk kategorie, vind die streek waarin hy moes maksimum verkope. Die ekwivalent SQL navraag met behulp van die MAX verslagdoening totaal funksie sou wees: die innerlike navraag met die verslag totaal funksie MAX (som (amountsold)) gee terug Die volledige navraag resultate: Voorbeeld 21-12 verslag Totale Voorbeeld Verslagdoening aggregate gekombineer met geneste navrae in staat te stel jy komplekse navrae doeltreffend te beantwoord. Byvoorbeeld, wat as jy wil die beste verkoop produkte in jou belangrikste produk weet subkategorië Die volgende is 'n navraag wat die 5-topverkoper produkte vind vir elke produk subcategory dat meer as 20 van die verkope binne sy kategorie produk bydra: RATIOTOREPORT funksioneer die RATIOTOREPORT funksie bere die verhouding van 'n waarde van die som van 'n stel waardes. As die uitdrukking waarde uitdrukking evalueer om nul. RATIOTOREPORT evalueer ook null. maar dit word beskou as 'n nul vir die berekening van die bedrag van waardes vir die deler. Die sintaksis is: In hierdie, die volgende van toepassing: Expr kan enige geldige uitdrukking wat kolom verwysings of aggregate wees. Die afsluiting met klousule omskryf die groepe waarop die RATIOTOREPORT funksie word bereken. As die afsluiting met klousule afwesig is, dan is die funksie word bereken oor die hele navraag gevolg stel. Om RATIOTOREPORT van verkope te bereken vir elke kanaal, kan jy gebruik maak van die volgende opdrag: LAG / LEAD Funksies Die LAG en lood funksies is nuttig vir die vergelyking van waardes wanneer die relatiewe posisies van rye betroubaar kan wees nie. Hulle werk deur die spesifiseer van die telling van rye wat die teiken ry skei van die huidige ry. Omdat die funksies bied toegang tot meer as een ry van 'n tafel op dieselfde tyd sonder 'n self-sluit, hulle kan verwerkingspoed te verbeter. Die LAG funksie bied toegang tot 'n ry op 'n gegewe geneutraliseer voor die huidige posisie, en die voortou funksie bied toegang tot 'n ry op 'n gegewe verreken na die huidige posisie. LAG / LEAD Syntax Hierdie funksies het die volgende opdrag: verreken is 'n opsionele parameter en gebreke aan 1. verstek is 'n opsionele parameter en die waarde teruggekeer as geneutraliseer val buite die grense van die tafel of partisie. Sien Data Verdigting vir Rapportering vir inligting wat wys hoe om die LAG / LEAD funksies gebruik om dit te doen tydperk tot tydperk vergelyking navrae oor yl data. Naam / Voor funksies die eerste / laaste totaal funksies toelaat om 'n datastel rang en werk met sy top-posisie of onderkant ingedeel rye. Na die vind van die bo-of onderkant ingedeel rye, is 'n totaal funksie toegepas op enige gewenste kolom. Dit is die eerste / laaste kan jou rang op kolom A, maar die standaard van die uitslag van 'n totaal van toepassing op die eerste gekeurde of laaste-posisie rye kolom B. Dit is waardevol omdat dit vermy die behoefte aan 'n self-sluit of subquery, dus die verbetering van prestasie. Hierdie funksies sintaksis begin met 'n gereelde totaal funksie (MIN. MAX. Som. AVG. Tel. Afwyking. STDDEV) dat 'n enkele terugkeer waarde per groep produseer. Om die posisie gebruik spesifiseer, die eerste / laaste funksies by te voeg 'n nuwe klousule wat begin met die woord te hou. Naam / Voor Syntax Hierdie funksies het die volgende opdrag: Let daarop dat die ORDER BY klousule verskeie uitdrukkings kan neem. Naam / Voor as gereelde Aggregates Jy kan die eerste / laaste familie van aggregate as gereelde totaal funksies gebruik. Voorbeeld 21-15 FIRST / laaste voorbeeld 1 Die volgende navraag laat ons vergelyk minimum prys en prys lys van ons produkte. Vir elke produk subcategory binne die kategorie klere Mens, dit gee die volgende: pryslys van die produk met die laagste minimum prys laagste minimum prys lys prys van die produk met die hoogste minimum prys Hoogste minimumprys eerste / laaste Soos verslag Aggregates Jy kan ook gebruik die eerste / laaste familie van aggregate as verslagdoening totale funksies. 'N Voorbeeld is die berekening van watter maande het die grootste en die minste toename in koppetelling regdeur die jaar. Die sintaksis vir hierdie funksies is soortgelyk aan die sintaksis vir enige ander verslagdoening totaal. Kyk na die voorbeeld in Voorbeeld 21-15 vir eerste / laaste uitgekom. Wat gebeur as ons wou die lys pryse van individuele produkte te vind en dit vergelyk met die lys pryse van die produkte in hul subcategory dat die hoogste en laagste minimum pryse Die volgende navraag laat ons vind dat die inligting vir die dokumentasie subcategory met behulp eerste / laaste as verslagdoening aggregate. Voorbeeld 21-16 FIRST / laaste voorbeeld 2 gebruik van die eerste en laaste funksioneer as verslagdoening aggregate maak dit maklik om die resultate in berekeninge insluit soos salaris as 'n persent van die hoogste salaris. Inverse Percentile funksies met behulp van die CUMEDIST funksie, kan jy die kumulatiewe verspreiding (persentiel) van 'n stel waardes te vind. Maar die omgekeerde werking (vind watter waarde bere om 'n sekere persentiel) is nie maklik om te doen nie doeltreffend bereken. Om hierdie probleem te oorkom, is die PERCENTILECONT en PERCENTILEDISC funksies bekendgestel. Dit kan beide gebruik word as venster verslagdoening funksies sowel as die normale gemiddelde funksies. Hierdie funksies moet 'n soort spesifikasie en 'n parameter wat 'n persentiel waarde tussen 0 en 1. Die soort spesifikasie neem hanteer deur gebruik te maak van 'n bevel deur klousule met een uitdrukking. Wanneer dit gebruik word as 'n normale gemiddelde funksie, dit gee 'n enkele waarde vir elke geordende stel. PERCENTILECONT. wat is 'n kontinue funksie bereken deur interpolasie, en PERCENTILEDISC. Dit is 'n stap funksie wat diskrete waardes veronderstel. Soos ander aggregate, PERCENTILECONT en PERCENTILEDISC werk op 'n groep van rye in 'n gegroepeerde navraag, maar met die volgende verskille: Hulle benodig 'n parameter tussen 0 en 1 (ingesluit). A parameter gespesifiseer uit hierdie reeks sal lei tot foute. Hierdie parameter moet gespesifiseer as 'n uitdrukking wat evalueer om 'n konstante. Hulle vereis 'n soort spesifikasie. Hierdie soort spesifikasie is 'ORDER BY klousule met 'n enkele uitdrukking. Meervoudige uitdrukkings word nie toegelaat nie. Normale Totale Syntax Inverse Percentile Voorbeeld Basis Ons gebruik die volgende navraag aan die 17 rye data wat in die voorbeelde van hierdie artikel terugkeer: PERCENTILEDISC (x) word bereken deur die skandering van die CUMEDIST waardes in elke groep totdat jy die eerste een groter as vind of gelyk aan x. waar x die gespesifiseerde persentiel waarde. Vir die voorbeeld navraag waar PERCENTILEDISC (0,5), die resultaat is 5000, na gelang van die volgende illustreer: Die resultaat van PERCENTILECONT word bereken deur lineêre interpolasie tussen die rye agter hulle bestel. Om PERCENTILECONT bereken (x). ons eerste bereken die rijnummer RN (1x (N-1)), waar n die aantal rye in die groep en x is die gespesifiseerde persentiel waarde. Die finale uitslag van die totale funksie word bereken deur lineêre interpolasie tussen die waardes van rye by ry getalle CRN oordek (RN) en FRN FLOOR (RN). Die finale uitslag sal wees: PERCENTILECONT (X) indien (CRN FRN RN), dan (waarde van uitdrukking van ry op RN) anders (CRN - RN) (waarde van uitdrukking vir ry op FRN) (RN - FRN) (waarde van uitdrukking vir ry op CRN). Kyk na die vorige voorbeeld navraag, waar ons bereken PERCENTILECONT (0,5). Hier N is 17. Die rynommer RN (1 0.5 (N-1)) 9 vir beide groepe. Om dit in die formule, (FRNCRN9), keer ons die waarde van ry 9 as die resultaat. Nog 'n voorbeeld is, as jy wil bereken PERCENTILECONT (0.66). Die berekende rijnummer RN (1 0.66 (N -1)) (1 0,6616) 11.67. PERCENTILECONT (0.66) (12-11,67) (waarde van ry 11) (11,67-11) (waarde van ry 12). Hierdie resultate is: Inverse persentiel totaal funksies kan verskyn in die WAT klousule van 'n navraag soos ander bestaande gesamentlike funksies. As verslag Aggregates Jy kan ook gebruik om die totale funksies PERCENTILECONT. PERCENTILEDISC as verslagdoening totale funksies. Wanneer dit gebruik word as verslagdoening totaal funksies, die sintaksis is soortgelyk aan dié van ander verslagdoening aggregate. Hierdie navraag bere dieselfde ding (mediaan kredietlimiet vir kliënte in hierdie resultaat stel, maar verslae die resultaat vir elke ry in die resultaat stel, soos in die volgende afvoer: Inverse Percentile beperkings vir PERCENTILEDISC die uitdrukking in die ORDER BY klousule kan. wees van enige soort data wat jy kan sorteer (numeriese, string, datum, en so aan). Maar die uitdrukking in die ORDER bY klousule moet 'n numeriese of DATETIME tipe (insluitend tussenposes), want lineêre interpolasie gebruik word om PERCENTILECONT evalueer. As die uitdrukking is van tipe DATUM. die geïnterpoleer gevolg word afgerond tot die kleinste eenheid vir die tipe. vir 'n datum tipe, sal die geïnterpoleer waarde word afgerond tot die naaste sekonde, vir interval tipes tot die naaste sekonde (iNTERVAL DAG tOT tWEEDE) of om die maand (INTERVAL JAAR tot maand). Soos ander aggregate, die omgekeerde persentiel funksies te ignoreer NULLs in die evaluering van die resultaat. byvoorbeeld, wanneer jy wil die mediaanwaarde in 'n stel te vind, Oracle databasis ignoreer die NULLs en bevind dat die mediaan onder die nie-nul waardes. Jy kan gebruik maak van die laaste opsie NULLS eerste / NULLS in die ORDER BY klousule, maar hulle sal geïgnoreer word as NULLs geïgnoreer. Hipotetiese posisie en verdelingsfunksies Hierdie funksies bied funksies nuttig vir wat-nou-ontleding. As 'n voorbeeld, sou wat die rang van 'n ry wees, indien die ry hipoteties in 'n reeks van ander rye Hierdie familie van aggregate neem een ​​of meer argumente van 'n hipotetiese ry en 'n geordende groep rye is ingevoeg, die terugkeer van die rank. DENSERANK. PERCENTRANK of CUMEDIST van die ry asof dit hipoteties plaas in die groep. Hipotetiese posisie en verspreiding Syntax Hier konstante uitdrukking verwys na 'n uitdrukking wat evalueer om 'n konstante, en daar mag meer as een so 'n uitdrukking wat geslaag as argumente om die funksie. Die ORDER BY klousule kan een of meer uitdrukkings wat die sorteer orde waarop die posisie sal gebaseer definieer bevat. ASC. Latere. NULLS EERSTE. NULLS LAASTE opsies sal beskikbaar wees vir elke uitdrukking in die ORDER BY wees. Voorbeeld 21-17 Hipotetiese posisie en verspreiding Voorbeeld 1 Gebruik die lys prys data van die produkte tafel gebruik in hierdie artikel, kan jy die rang te bereken. PERCENTRANK en CUMEDIST vir 'n hipotetiese trui met 'n prys van 50 vir hoe dit inpas binne elk van die trui subkategorië. Die navraag en resultate is: In teenstelling met die omgekeerde persentiel aggregate, mag die ORDER BY klousule in die soort spesifikasie vir hipotetiese rang en verspreiding funksies verskeie uitdrukkings te neem. Die aantal argumente en die uitdrukkings in die ORDER BY klousule moet dieselfde wees en die argumente moet konstante uitdrukkings van dieselfde of versoenbaar tipe met die ooreenstemmende ORDER BY uitdrukking wees. Die volgende is 'n voorbeeld gebruik van twee argumente in 'n paar hipotetiese posisie funksies. Voorbeeld 21-18 Hipotetiese posisie en verspreiding Voorbeeld 2 Hierdie funksies kan verskyn in die WAT klousule van 'n navraag, net soos ander totaal funksies. Hulle kan nie gebruik word as óf verslagdoening totaal funksies of te venster totaal funksies. Lineêre regressie Funksies Die regressie funksies ondersteun die pas van 'n gewone-minste-regressielyn om 'n stel van verskeie pare. Jy kan dit gebruik as beide totaal funksies of windows of verslagdoening funksies. Die funksies is soos volg: Oracle geld die funksie om die stel van pare na die uitskakeling van alle pare waarvoor enigeen van E1 of e2 is van nul (E1 E2.). E1 word geïnterpreteer as 'n waarde van die afhanklike veranderlike (a y-waarde), en E2 word geïnterpreteer as 'n waarde van die onafhanklike veranderlike ( 'n x-waarde). Beide uitdrukkings moet getalle. Die regressie funksies is almal gelyktydig bereken tydens 'n enkele slaag deur die data. Hulle word dikwels gekombineer met die COVARPOP. COVARSAMP. en CORR funksies. REGRCOUNT Function REGRCOUNT gee die aantal nie-nul getal pare gebruik om die regressielyn te pas. As toegepas op 'n leë versameling (of as daar geen (E1, E2) pare waar nie een van E1 of e2 is van nul), die funksie gee terug 0. REGRAVGY en REGRAVGX Funksies REGRAVGY en REGRAVGX bereken die gemiddeld van die afhanklike veranderlike en die onafhanklike veranderlike van die regressielyn, onderskeidelik. REGRAVGY bere die gemiddeld van die eerste argument (E1) na die uitskakeling van (e1. E2) pare waar een van E1 of e2 is nul. Net so, REGRAVGX bere die gemiddelde van sy tweede argument (E2) na nul uitskakeling. Beide funksies terugkeer NULL indien dit op 'n leë versameling. REGRSLOPE en REGRINTERCEPT Funksies Die REGRSLOPE funksie bere die helling van die regressielyn toegerus om nie-nul (e1. E2) pare. Die REGRINTERCEPT funksie bere die y-afsnit van die regressielyn. REGRINTERCEPT terugkeer NULL wanneer helling of die regressie gemiddeldes is NULL. REGRR2 Funksie Die REGRR2 funksie bere die bepaaldheidskoëffisiënt (gewoonlik genoem R-kwadraat of passingstoetse) vir die regressielyn. REGRR2 terugkeer waardes tussen 0 en 1 wanneer die regressielyn word gedefinieer (helling van die lyn is nie nul) en dit terug NULL anders. Hoe nader die waarde aan 1, hoe beter is die regressielyn pas die data. REGRSXX, REGRSYY, en REGRSXY Funksies REGRSXX. REGRSYY en REGRSXY funksies gebruik word in die berekening van verskillende diagnostiese statistieke vir regressie-analise. Na die uitskakeling (E1 E2.) Pare waar een van E1 of e2 is nul, hierdie funksies maak die volgende berekeninge: Lineêre regressie Statistiek Voorbeelde Sommige algemene diagnostiese statistieke wat lineêre regressieanalise vergesel word in Tabel 21-2, gemeenskaplike Diagnostiese Statistiek en Hul uitdrukkings. Let daarop dat hierdie vrystellings nuwe funksies toelaat om al hierdie te bereken. Tabel 21-2 Gemeenskaplike Diagnostiese Statistiek en die expressie Voorbeeld lineêre regressie berekening in hierdie voorbeeld, bereken ons 'n gewone-minste-regressielyn wat die verkoop van 'n produk as 'n lineêre funksie van die produkte lys prys hoeveelheid druk. Die berekeninge is gegroepeer deur verkope kanaal. Die waardes helling. INTCPT. RSQR is helling, onderskep, en bepaaldheidskoëffisiënt van die regressielyn, onderskeidelik. Die (heelgetal) waarde telling is die aantal produkte in elke kanaal vir wie albei verkoop hoeveelheid en prys lys data is beskikbaar. Gereelde Itemsets In plaas van tel hoeveel keer 'n gegewe gebeurtenis plaasvind (byvoorbeeld, hoe dikwels iemand gekoop melk by die kruideniersware), gereelde itemsets bied 'n meganisme vir die tel van hoe dikwels verskeie geleenthede saam voorkom (byvoorbeeld, hoe dikwels iemand gekoop het beide melk en graan saam by die kruidenierswinkel). Die insette van die gereelde-itemsets werking is 'n versameling van data wat versamelings van voorwerpe (itemsets) verteenwoordig. 'N Paar voorbeelde van itemsets kon al die produkte wat 'n gegewe kliënt gekoop in 'n enkele reis na die kruidenierswinkel wees (algemeen bekend staan ​​as 'n mark mandjie), die web-bladsye wat 'n gebruiker toegang in 'n enkele sessie, of die finansiële dienste wat 'n gegewe kliënt gebruik. Die idee van 'n gereelde itemset is om diegene itemsets wat die meeste voorkom vind. As jy die gereelde-itemset operateur van toepassing op 'n kruidenierswinkels data punt-van-verkope, jy kan, byvoorbeeld, ontdek dat melk en piesangs is die mees algemeen gekoop denim items. Gereelde itemsets het dus gebruik in sake-intelligensie-omgewings vir baie jare, met die mees algemene een is vir die mark mandjie ontleding in die kleinhandel bedryf. Gereelde itemsets geïntegreer met die databasis, wat op die top van relasionele tabelle en toeganklik deur middel van SQL. Hierdie integrasie bied 'n paar van die belangrikste voordele: Aansoeke wat voorheen staatgemaak op gereelde itemset bedrywighede nou voordeel trek uit aansienlik verbeter prestasie sowel as eenvoudiger implementering. - SQL-gebaseerde programme wat nie voorheen gebruik gereelde itemsets kan nou maklik uitgebrei word om voordeel te trek uit hierdie funksionaliteit. Gereelde itemsets analise is uitgevoer met die PL / SQL pakket DBMSFREQUENTITEMSETS. Sien PL / SQL pakkette en tipes Versoek om meer inligting. Ander statistiese funksies Oracle stel 'n stel van SQL statistiese funksies en 'n statistiek pakket, DBMSSTATFUNCS. In hierdie rubriek is 'n paar van die nuwe funksies saam met basiese sintaks. Sien PL / SQL pakkette en tipes Versoek om inligting oor die DBMSSTATFUNCS pakket en Oracle databasis SQL Versoek om sintaksis en semantiek. Mediaan van 'n datastel af van 'n datastel Jy kan die volgende parametriese statistiek bereken:: Beskrywende Statistiek Jy kan die volgende beskrywende statistiek te bereken Spearmans rho koëffisiënt Kendalls TLU-b koëffisiënt Benewens die funksies, hierdie weergawe het 'n nuwe PL / SQL pakket, DBMSSTATFUNCS. Dit bevat die beskrywende statistiek funksie OPSOMMING saam met funksies om verspreiding gepaste ondersteun. Die opsomming funksie gee 'n opsomming 'n numeriese kolom van 'n tafel met 'n verskeidenheid van beskrywende statistiek. Die vyf verspreiding pas funksies ondersteun normale, uniform, Weibull, Poisson, en eksponensiaalverdelings. WIDTHBUCKET funksie 'n gegewe uitdrukking, die WIDTHBUCKET funksie gee terug Die emmer getal wat die gevolg van hierdie uitdrukking word toegeken nadat dit geëvalueer. Jy kan equiwidth histogramme met hierdie funksie te genereer. Equiwidth histogramme verdeel datastelle in emmers wie interval grootte (hoogste waarde tot laagste waarde) is gelyk. Die aantal rye wat deur elke emmer sal wissel. 'N Verwante funksie, NTILE. skep equiheight emmers. Equiwidth histogramme kan slegs vir numeriese, datum of tipes DATETIME gegenereer. So het die eerste drie parameters moet wees al numeriese uitdrukkings of al datum uitdrukkings. Ander vorme van uitdrukking is nie toegelaat nie. As die eerste parameter is null. die resultaat is NULL. As die tweede of die derde parameter is null. 'n fout boodskap teruggestuur, as 'n NULL waarde enige eindpunt (of enige punt) vir 'n verskeidenheid in 'n datum of numeriese waarde dimensie nie kan dui. Die laaste parameter (aantal emmers) moet 'n numeriese uitdrukking wat evalueer om 'n positiewe heelgetal waarde 0 te wees, NULL. of 'n negatiewe waarde sal lei tot 'n fout. Emmers genommer van 0 tot (n 1). Emmer 0 beklee die telling van waardes minder as die minimum te beperk. Emmer (n 1) hou die telling van waardes groter as of gelyk aan die maksimum gespesifiseerde waarde. WIDTHBUCKET Sintaksis Die WIDTHBUCKET neem vier uitdrukkings as parameters. Die eerste parameter is die uitdrukking dat die equiwidth histogram is vir. Die tweede en derde parameters is uitdrukkings wat die eindpunte van die aanvaarbare reeks dui vir die eerste parameter. Die vierde parameter dui op die aantal emmers. Oorweeg die volgende data van tabel kliënte. wat toon die kredietlimiete van 17 kliënte. Hierdie data is versamel in die bedrag wat in Voorbeeld 21-19 navraag. In die tafel kliënte. die kolom custcreditlimit bevat waardes tussen 1500 en 15000, en ons kan die waardes toewys aan vier equiwidth emmers, genommer van 1 tot 4, deur die gebruik van WIDTHBUCKET (custcreditlimit, 0, 20000, 4). Ideaal elke emmer is 'n geslote-oop interval van die werklike getallelyn, byvoorbeeld, emmer nommer 2 aan tellings tussen 5000,0000 en 9999,9999. soms aangedui 5000, 10000) om aan te dui dat 5000 is ingesluit in die interval en 10.000 uitgesluit. Om waardes te akkommodeer buite die reeks 0, 20000), waardes minder as 0 na 'n aangewese onderloop emmer wat getel 0 toegeken, en waardes groter as of gelyk aan 20,000 is aan 'n aangewese oorloop emmer wat getel 5 (NUM emmers 1 oor die algemeen). Sien Figuur 21-3 vir 'n grafiese illustrasie van hoe die emmers is opgedra. Jy kan die grense spesifiseer in die omgekeerde volgorde, byvoorbeeld, WIDTHBUCKET (custcreditlimit. 20000. 0. 4). Wanneer die grense word omgekeer, sal die emmers oop-toe met tussenposes. In hierdie voorbeeld emmer nommer 1 is (15000,20000, emmer nommer 2 is (10000,15000 en emmer nommer 4, is (0, 5000. Die oorloop emmer sal genommer 0 (20000. oneindig), en die onderloop emmer sal genommer 5 (- oneindig 0 Dit is 'n fout as die parameter emmer telling is 0 of negatiewe die volgende is g navraag toon die emmer-wennommers vir die kredietlimiete in die kliënte tafel vir beide gevalle waar die grense word in gereelde... of omgekeerde volgorde. Ons gebruik 'n verskeidenheid van 0 tot 20,000. gebruiker-gedefinieerde totale funksies Oracle bied 'n fasiliteit vir die skep van jou eie funksies, genaamd die gebruiker-gedefinieerde totale funksies. Hierdie funksies word geskryf in programmeertale soos PL / SQL, Java, .. en C, en kan gebruik word as analitiese funksies of aggregate in gematerialiseerde uitsig Sien Oracle Data Cartridge Ontwikkelaars Gids vir verdere inligting in verband met sintaksis en beperkings Die voordele van hierdie funksies is: hoogs komplekse funksies kan geprogrammeer met behulp van 'n ten volle proses taal. Hoër scalability as ander tegnieke wanneer die gebruiker-gedefinieerde funksies geprogrammeer vir parallelle verwerking. Voorwerp gegee tik kan verwerk. As 'n eenvoudige voorbeeld van 'n gebruiker-gedefinieerde totaal funksie, kyk na die skewe statistiek. Hierdie berekening maatreëls as 'n datastel het 'n skewe verdeling oor die gemiddelde. Dit sal jou vertel as 'n mens stert van die verspreiding is aansienlik groter as die ander. As jy 'n gebruiker-gedefinieerde totale genoem udskew geskep en toegepas op die kredietlimiet data in die vorige voorbeeld, kan die SQL-stelling en resultate soos volg lyk: Voor die bou van gebruiker-gedefinieerde totaal funksies, moet jy oorweeg as jou behoeftes voldoen kan word in gereelde SQL. Baie komplekse berekeninge is moontlik direk in SQL, veral deur die gebruik van die geval uitdrukking. Bly met gereelde SQL sal eenvoudiger ontwikkeling in staat te stel, en baie navraag bedrywighede is reeds goed parallelized in SQL. Selfs die vorige voorbeeld, die skewe statistiek, geskep kan word met behulp van standaard, al is dit 'n lang, SQL. CASE Expressions Oracle ondersteun nou eenvoudig en deursoek CASE state. CASE state is soortgelyk in doel om die DECODE verklaring, maar hulle bied meer buigsaamheid en logiese krag. Hulle is ook makliker om te lees as die tradisionele DECODE state, en bied 'n beter prestasie as well. Hulle word algemeen gebruik wanneer breek kategorieë in emmers soos ouderdom (byvoorbeeld, 20-29, 30-39, en so aan). Die sintaksis vir eenvoudige stellings is: Die sintaksis vir deursoek state is: Jy kan net 255 argumente en elke WANNEER spesifiseer. DAN paar tel as twee argumente. Die resultaat van 'n afgeskorte buitenste deel is 'n unie van die buitenste sluit van elk van die mure in die logies verdeel tafel met die tafel aan die ander kant van die aan te sluit. Let daarop dat die kolom HierarchicalTime bevat string vertoë van tyd uit alle vlakke van die tyd hiërargie. Omdat dit 'n dubbele navraag, sal verwysings na cubeprodtime herskryf om die mvprodtime gebruik bewaarheid oog.


No comments:

Post a Comment