Thursday, October 6, 2016

Sql 12 Maand Bewegende Gemiddelde

Wanneer die berekening van 'n lopende bewegende gemiddelde, die plasing van die gemiddelde in die middel tydperk sinvol In die vorige voorbeeld het ons bereken die gemiddeld van die eerste 3 tydperke en sit dit langs tydperk 3. Ons kan die gemiddelde geplaas in die middel van die tyd interval van drie tydperke, dit is, langs tydperk 2. dit werk goed met vreemde tydperke, maar nie so goed vir selfs tydperke. So waar sou ons plaas die eerste bewegende gemiddelde wanneer M 4 Tegnies, sou die bewegende gemiddelde op t 2.5, 3.5 val. Om hierdie probleem wat ons glad Mas using 2. So glad ons die stryk waardes As ons gemiddeld 'n gelyke getal terme te vermy, moet ons die stryk waardes glad Die volgende tabel toon die resultate met behulp van M 4.If hierdie boodskap sien jy, 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 Geweegde Moving AverageI 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: 58How '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 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: Ek het data soos hieronder (met 30.000 verskillende items) en terwyl ek nog nie het 12 maande van weeklikse data wil ek 'n bewegende gemiddelde vir die afgelope 12 maande te skep (DATEADD (jjjj, -1, GETDATE ())). Dit sal elke week hardloop om ons gemiddelde inventaris vlak vir die afgelope 12 maande teen elke item te vang. Verder, ek moet hierdie terugwerkend hardloop na die rekords ek tans het (30 weke die moeite werd om vir elke item op die oomblik) te werk. Die terugwerkende is dit nodig om 'n gemiddelde net tot by die datum waarop die rekord is gevang neem, sodat vir die eerste datum waarop die item die gemiddelde sou wees op 'n rekord en vir die tweede datum, twee rekords, ens (Ek dink die huidige update sal moet verskillende T-SQL as die toekoms weeklikse werk). Die data lyk soos volg (die kolom aan die regterkant toon hoe dit moet lyk. Van Excel :)) Datum ItemNo Waarde 12mAve 01/06/2008 00:00 0003E 285,6465 285,6465 08/06/2008 00:00 0003E 377,9624 331,8045 15 / 06/2008 00:00 0003E 377,9624 347,1904 22/06/2008 00:00 0003E 377,9624 354,8834 29/06/2008 00:00 0003E 283,4718 340,6011 06/07/2008 00:00 0003E 283,4718 331,0796 13/07/2008 00:00 0003E 283,4718 324,2784 20/07/2008 00:00 0003E 188,9812 307,3663 27/07/2008 00:00 0003E 188,9812 294,2124 03/08/2008 00:00 0003E 188,9812 283,6893 10/08/2008 00:00 0003E 567,0228 309,4469 17/08 / 2008 00:00 0003E 567,0228 330,9115 24/08/2008 00:00 0003E 567,0228 349,0739 31/08/2008 00:00 0003E 567,0228 364,6417 07/09/2008 00:00 0003E 567,0228 378,1338 14/09/2008 00:00 0003E 567.0228 389.9393 21/09/2008 00:00 0003E 472,5190 394,7970 nickhodge (2009/02/20) Dankie vir beide jou hulp. Ek het hierdie werklike T-SQL maar dit keer uit (Tydverstreke verstryk). (Ek moet die inventaris waarde te bereken, maar probeer op 'n toets tafel met daardie pre-bereken, dieselfde probleem). Die enigste ding wat ek kan sien is dat dit voeg OUTER outomaties, maar dis waarskynlik die standaard KIES a. ItemNo, a. Date, AVG (b. QOH b. AveCost) AS 12mAve UIT dbo. WeeklyLoc1InventoryData as 'n links OUTER JOIN dbo. WeeklyLoc1InventoryData AS b op a. ItemNo a. ItemNo EN b. Date GT DATEADD (m, - 12, a. Date) EN b. Date Dit a. Date GROUP BY a. ItemNo, a. Date Enige leidrade (Ek hoop net ek havent het iets verkeerd in die T-SQL, maar moenie dink ek het) op 'n. ItemNo n. ItemNo --Jeff Moden RBAR uitgespreek gemsbok-bar en 'n Modenism vir R ow - B y a gonizing - R oe. Eerste stap in die rigting van die paradigmaskuif van skryf Stel Gebaseer kode: Hou op dink oor wat jy wil doen om 'n ry. dink, in plaas van wat jy wil doen om 'n kolom. Nuttige skakels: Hoe om kode probleme post Hoe om prestasie probleme post


No comments:

Post a Comment