Ek is besig met SQL Server 2008 R2, probeer om 'n bewegende gemiddelde te bereken. Vir elke rekord in my mening, sou ek graag die waardes van die 250 vorige rekords in te samel, en bereken dan die gemiddelde vir hierdie seleksie. My mening kolomme is soos volg: TransactionID is uniek. Vir elke TransactionID. Ek wil graag die gemiddelde vir waarde kolom bereken, oor die vorige 250 rekords. So vir TransactionID 300, versamel al waardes van die vorige 250 rye (siening word gesorteer dalende deur TransactionID) en dan in kolom MovAvg skryf die resultaat van die gemiddeld van hierdie waardes. Ek is op soek na data in te samel binne 'n verskeidenheid van rekords. gevra 28 Oktober 14 aan 20: 58This is 'n immergroen Joe Celko vraag. Ek ignoreer wat DBMS platform gebruik word. Maar in elk geval Joe was in staat om meer as 10 jaar gelede antwoord met standaard SQL. Joe Celko SQL Puzzles en Antwoorde aanhaling: Daardie laaste update poging dui daarop dat ons die gesegde kan gebruik om 'n navraag wat vir ons 'n bewegende gemiddelde sou gee te bou: Is die ekstra kolom of die navraag benadering beter Die navraag is tegnies beter omdat die werk benadering denormalize die databasis. Maar, as die historiese data aangeteken is nie van plan om te verander en die berekening van die bewegende gemiddelde is duur, kan jy oorweeg om die benadering kolom. SQL legkaart navraag: deur al beteken uniform. Jy gooi net om die toepaslike gewig emmer, afhangende van die afstand vanaf die huidige tyd punt. Byvoorbeeld quottake weight1 vir datapunte binne 24 uur van die huidige datapoint weight0.5 vir datapunte binne 48hrsquot. Daardie geval is dit sake hoeveel opeenvolgende datapunte (soos 06:12 en 23:48) is ver van mekaar 'n gebruik geval ek kan dink sou 'n poging om die histogram waar datapunte is nie dig genoeg uitvoering maak msciwoj 27 Mei 15 stryk op wees 22:22 Ek is nie seker dat jou verwagte resultaat (uitset) toon klassieke eenvoudige bewegende (rollende) gemiddeld vir 3 dae. Omdat, byvoorbeeld, die eerste trippel van getalle per definisie gee, maar jy verwag 4,360 en sy verwarrend. Nietemin, ek stel voor die volgende oplossing, wat venster-funksie AVG gebruik. Hierdie benadering is baie meer doeltreffend (duidelik en minder hulpbron-intensiewe) as self aansluit bekendgestel in ander antwoorde (en Im verbaas dat niemand 'n beter oplossing gegee). Jy sien dat AVG is toegedraai met geval wanneer ROWNUM GT p. days dan NULL s dwing in die eerste rye, waar 3 daagse bewegende gemiddelde is betekenisloos. Hy antwoord 23 Februarie by 13:12 Ons kan aansoek doen Joe Celkos vuil links buitenste deel metode (soos hierbo aangehaal deur Diego Scaravaggi) om die vraag te beantwoord soos dit gevra is. Genereer die versoek afvoer: geantwoord 9 Januarie by 00:33 Jou Antwoord 2016 stapel Exchange, IncHow 'n SQL Bereken bewegende gemiddelde sonder 'n wyser Update: As jy besig is met die nuutste weergawes van SQL Server, kan jy die windows funksies gebruik om te bereik dieselfde ding. 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: Veronderstel jy Datum dimensies in jou model en op grond van jou Maand Kort Naam met Jaar. hier kan jy 'n berekende mate te skep vir bewegende gemiddelde in jou scenario Laat my weet vir enige besonderhede voorgestel as antwoord deur Charlie Liao Microsoft voorwaardelike personeel, Moderator Vrydag, Februarie 7, 2014 06:28 Labeled as antwoord deur Charlie Liao Microsoft voorwaardelike personeel, moderator Donderdag, 13 Februarie, 2014 02:09 Donderdag, 6 Februarie, 2014 04:33 In statistiek, 'n bewegende gemiddelde (rollende gemiddelde of hardloop gemiddeld) is 'n berekening om datapunte te analiseer deur die skep van 'n reeks van gemiddeldes van verskillende onderafdelings van die volle datastel. Dit sluit in eenvoudige bewegende gemiddelde, kumulatiewe bewegende gemiddelde en geweegde bewegende gemiddelde. In jou scenario, kan jy 'n 3 stuk grond wat die bewegende gemiddelde vir die afgelope 6 maande met behulp van eenvoudige bewegende gemiddelde bereken skep. Hier is 'n voorbeeld navraag op Avontuur Werke vir jou verwysing. Charlie Liao TechNet Community Support Vrydag 7 Februarie, 2014 06:28 Alle antwoorde Veronderstel jy Datum dimensies in jou model en op grond van jou Maand Kort Naam met Jaar. hier kan jy 'n berekende mate te skep vir bewegende gemiddelde in jou scenario Laat my weet vir enige besonderhede voorgestel as antwoord deur Charlie Liao Microsoft voorwaardelike personeel, Moderator Vrydag, Februarie 7, 2014 06:28 Labeled as antwoord deur Charlie Liao Microsoft voorwaardelike personeel, moderator Donderdag, 13 Februarie, 2014 02:09 Donderdag, 6 Februarie, 2014 04:33 In statistiek, 'n bewegende gemiddelde (rollende gemiddelde of hardloop gemiddeld) is 'n berekening om datapunte te analiseer deur die skep van 'n reeks van gemiddeldes van verskillende onderafdelings van die volle datastel. Dit sluit in eenvoudige bewegende gemiddelde, kumulatiewe bewegende gemiddelde en geweegde bewegende gemiddelde. In jou scenario, kan jy 'n 3 stuk grond wat die bewegende gemiddelde vir die afgelope 6 maande met behulp van eenvoudige bewegende gemiddelde bereken skep. Hier is 'n voorbeeld navraag op Avontuur Werke vir jou verwysing. Charlie Liao TechNet Community Support Vrydag 7 Februarie, 2014 06:28 Microsoft is besig met 'n aanlyn-opname te dink jy van die webwerf van MSDN verstaan. As jy kies om deel te neem, sal die aanlyn-opname word aan jou wanneer jy die webwerf van MSDN verlaat. Wil jy deelneem 2016 Microsoft. Alle regte reserved. AVG (Transact-SQL) Pas AL 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 databasis.
No comments:
Post a Comment