Sunday, 3 September 2017

Glidande Medelvärde In Sql


Jag arbetar med SQL Server 2008 R2 och försöker beräkna ett glidande medelvärde. För varje post enligt min uppfattning vill jag samla värdena för de 250 föregående posterna och beräkna sedan genomsnittet för det här valet. Min synkolonner är enligt följande. TransactionID är unikt För varje TransaktionsID vill jag beräkna medelvärdet för kolumnvärde över tidigare 250 poster. Så för TransactionID 300 samlar du alla värden från tidigare 250 rader, sorteras nedåt med TransactionID och sedan i kolumnen MovAvg skriver du resultatet av Genomsnittet av dessa värden jag letar för att samla in data inom en rad records. asked 28 oktober 14 vid 20 58. Tidigare diskuterade vi hur man skriver rullande medelvärden i Postgres. Enligt populär efterfrågan visar vi dig hur du gör detsamma i MySQL och SQL Server. Vi kommer att täcka hur man kommenterar bullriga kartor som denna. Med en 7-dagars föregående medellinje som denna. Den stora ideen. Vår första graf ovan är ganska bullriga och svårt att få användbar information från. Vi kan släta ut det genom p Satsar ett 7-dagars medelvärde utöver de underliggande uppgifterna. Det kan göras med fönsterfunktioner, självförbindelser eller korrelerade undersökningar. Vi kommer att täcka de första två. Vi börjar med ett föregående medel, vilket innebär att den genomsnittliga punkten på Den 7: e månaden är genomsnittet för de första sju dagarna. Det här ändrar faktiskt spikarna i diagrammet till höger, eftersom en stor spik är medelvärde under de följande sju dagarna. Först Skapa ett mellantalstabell. Vi vill beräkna Ett genomsnitt över de totala registreringarna för varje dag Om vi ​​antar att vi har ett typiskt användartabell med en rad per ny användare och en tidsstämpel skapad, kan vi skapa vårt aggregat vårt registreringsbord som så. I Postgres och SQL Server kan du använda detta som en CTE I MySQL kan du spara det som ett temporärt bord. Postgres Rolling Average. Fortunately Postgres har fönsterfunktioner som är det enklaste sättet att beräkna ett löpande medelvärde. Denna fråga förutsätter att datumen inte har luckor Frågan är genomsnittlig under de senaste sju raderna , Inte det förflutna se Vän datum Om dina data har luckor, fyll i dem med generateseries eller gå med i ett bord med täta datumrader. MySQL Rolling Average. MySQL saknar fönsterfunktioner, men vi kan göra en liknande beräkning med självförbindelser För varje rad i vårt talbord , Vi går med i varje rad som var inom de senaste sju dagarna och tar genomsnittsvärdet. Den här frågan hanterar automatiskt datumluckor, eftersom vi tittar på rader inom ett datumintervall snarare än föregående N rader. SQL Server Rolling Average. SQL Server har fönster Funktioner, så att beräkning av rullande medel kan göras i antingen Postgres-stilen eller MySQL-stilen För enkelhet använder vi MySQL-versionen med en självförening. Detta är konceptuellt samma som i MySQL De enda översättningarna är datumaddfunktionen och uttryckligen namngiven Grupp med kolumner. Övriga medelvärden. Vi fokuserade på 7-dagars efterföljande medelvärde i det här inlägget. Om vi ​​ville titta på det 7-dagars ledande genomsnittet så var det så enkelt att sortera datumen i andra riktningen. Om vi ​​ville titta på Ett centrum Ed genomsnitt, vi d använder. Postgres rader mellan 3 föregående och 3 following. MySql mellan - 3 och 3 i MySQL. SQL Server mellan dateadd dag, -3 och dateadd dag, 3.This är en Evergreen Joe Celko fråga jag ignorerar vilket DBMS-plattformen används Men i alla fall kunde Joe svara för mer än 10 år sedan med standard SQL. Joe Celko SQL-pussel och svar citation Det senaste uppdateringsförsöket antyder att vi kan använda predikatet för att konstruera en fråga som skulle ge oss en rörelse Genomsnittet. Är den extra kolumnen eller frågeställningen bättre Frågan är tekniskt bättre eftersom UPDATE-metoden kommer att denormalisera databasen. Om de historiska data som registreras inte kommer att förändras och beräkningen är det rörliga genomsnittet dyrt kan du överväga att använda Kolumn approach. SQL Puzzle query. by all means uniform Du kasta bara till lämplig vikt hink beroende på avståndet från den aktuella tidpunkten Exempelvis vikt 1 för datapoäng inom 24 timmar från nuvarande datapoint Vikt 0 5 för datapoäng inom 48 timmar Det fallet spelar roll hur mycket sammanhängande datapoäng som 6 12 och 11 48 är avstånd från varandra Ett användningsfall som jag kan tänka på skulle vara ett försök att släta histogramet där datapunkter inte är täta nog msciwoj 27 maj 15 på 22 22. Jag är inte säker på att din förväntade resultatutgång visar ett klassiskt enkelt rörligt rullande medelvärde i 3 dagar, eftersom exempelvis den första trippeln av siffror per definition ger men du förväntar dig 4 360 och det är förvirrande. Föreslå följande lösning som använder fönsterfunktion AVG Denna metod är mycket effektivare och mindre resursintensiv än SELF-JOIN införd i andra svar och jag är förvånad över att ingen har givit en bättre lösning. Du ser att AVG är inslaget Med fall då rownum sedan tvinga NULL s i första raderna, där 3 dagars rörande medelvärde är meningslöst. Beslutad 23 februari 16 på 13 12. Vi kan tillämpa Joe Celko s smutsiga vänster yttre anslutningsmetod som citerats ovan av Diego Scaravaggi för att svara Frågan som den ställdes. Genererar den begärda output. answered jan 9 16 på 0 33. Ditt svar.2017 Stack Exchange, Inc.

No comments:

Post a Comment