Jeg har en tabellproduksjon som inneholder følgende struktur. Jeg har data for hver rep fra 1 1 2011 til 8 1 2013 Hva jeg vil kunne gjøre er å lage et 12 måneders glidende gjennomsnitt som begynner 1 1 2012 for hver rep, som følger hvor hver rad representerer det 12 måneders glidende gjennomsnittet for repeteren på oppgitt tidspunkt, fant jeg noen eksempler som var svakt lukkede og jeg prøvde dem til ingen nytte. Det virker tilsetning av en gruppe av rep-komponent er den store avviken fra andre eksempler. Dette er omtrent så langt jeg fikk. Denne spørringen ser ut til å trekke et samlet gjennomsnitt eller sum, siden det ikke er noen gruppering i den korrelerte subquery Når jeg prøver å gruppere, får jeg en feil at den kun kan returnere maksimalt en row. asked Okt 10 13 på 14 47. Dette er et Evergreen Joe Celko-spørsmål Jeg ignorerer hvilken DBMS-plattform som brukes, men i hvert fall kunne Joe svare på mer enn 10 år siden med standard SQL. Joe Celko SQL-puslespill og svar citation Det siste oppdateringsforsøk antyder at vi kunne bruke predikatet til å konstruere en forespørsel det ville gi oss et bevegelige gjennomsnitt. Er den ekstra kolonnen eller spørreinngangen bedre Spørringen er teknisk bedre fordi UPDATE-tilnærmingen vil deformalisere databasen. Men hvis de historiske dataene som blir registrert ikke kommer til å endres og beregner det glidende gjennomsnittet er dyrt , kan du vurdere å bruke kolonnen approach. SQL Puzzle query. by means uniform Du kaster bare til riktig vektbøtte avhengig av avstanden fra det nåværende tidspunktet. For eksempel, ta 1 vekt for datapoints innen 24 timer fra nåværende datapointvekt 0 5 for datapoints innen 48 timer Den saken det betyr noe om hvor mange sammenhengende datapoints som 6 12 og 11 48 er fjernt fra hverandre En brukstilstand jeg kan tenke på, ville være et forsøk på å glatte histogrammet hvor datapunktene ikke er tette nok msciwoj 27 mai kl 22 22 22.Jeg er ikke sikker på at forventet resultatutgang viser klassisk enkelt bevegelige rullende gjennomsnitt i 3 dager. For eksempel, den første trippen av tall ved definiti på gir. men du forventer 4 360 og det er forvirrende. Likevel foreslår jeg følgende løsning, som bruker vindufunksjon AVG Denne tilnærmingen er mye mer effektiv, klar og mindre ressursintensiv enn SELF-JOIN introdusert i andre svar, og jeg m overrasket over at ingen har gitt en bedre løsning. Du ser at AVG er innpakket med tilfelle når rownum da for å tvinge NULL s i første rader, hvor 3 dagers Moving Average er meningsløst. Ansatt 23. februar kl. 13 12. Vi kan søke Joe Celko s skitne venstre ytre sammenføyningsmetode som nevnt ovenfor av Diego Scaravaggi for å svare på spørsmålet som det ble spurt. Genererer den forespurte output. answered jan 9 16 på 0 33. Ditt svar.2017 Stack Exchange, Inc. Moving Average Calculation. Moving Average Calculation. Virkning av gjennomsnittlig beregning. Jeg prøver å beregne et glidende gjennomsnitt for en serie data. Jeg vil generere det bevegelige gjennomsnittet for hvert punkt i dataene for å vise i en graf. Uansett, nedenfor er et eksempel fra MS Support jeg har fulgt til brevet, men m ine gir ikke et bevegelige gjennomsnitt Det gjentar det samme datapunktet over og over det første datapunktet Så jeg tror ikke funksjonen finner startdatoen i linjen, og returnerer derfor bare det første datapunktet. Det vil kanskje kanskje gjøre dette virkelig lett Jeg er forvirret om hvordan indeksene fungerer Jeg trodde du bare kunne ha en primærnøkkel, men tilsynelatende kan du opprette flere feltbegrensninger jeg har forsøkt å gjøre dette med følgende datadefinisjonsspørring. ALTER TABLE Tabell1 ADD CONSTRAINT NoDupes UNIQUE ValutaType, TransaksjonsDate . Sørg for lengden på dette innlegget, jeg setter pris på din hjelp. Følgende utvalgsfunksjon beregner glidende gjennomsnitt basert på et bord med en primærnøkkel med flere felt. De ukentlige verdiene av utenlandsk valuta brukes til dette eksemplet. For å opprette prøvefunksjonen, følg disse trinn. Opprett følgende tabell og lagre den som Tabell1 Tabell Tabell 1 ------------------------------------- ---- Feltnavn ValutaType Primærnøkkel Datatype Tekstfelt Størrelse 25.Fie ld Navn TransaksjonDate Primærnøkkel Datatype Dato Tidsformat Kort Dato. Field Name Rate Datatype Valuta Decimal Steder 4.Vis tabellen i Dataarkvisning og skriv inn følgende verdier CurrencyType TransactionDate Rate ------------- ------------------------------- Yen 8 6 93 0 0079 Yen 8 13 93 0 0082 Yen 8 20 93 0 0085 Yen 8 27 93 0 0088 Yen 9 3 93 0 0091 Mark 8 6 93 0 5600 Mark 8 13 93 0 5700 Mark 8 20 93 0 5800 Mark 8 27 93 0 5900 Mark 9 3 93 0 6000. Åpne en ny modul og skriv inn følgende funksjoner. Funksjon MAvgs Perioder Som helhet, StartDate, TypeName Dim MyDB Som DATABASE, MyRST Som RecordSet, MySum As Double Dim I, x Sett MyDB CurrentDb Set MyRST. On Error Resume Next. PrimaryKey x Perioder - 1 ReDim Store x MySum 0.For i 0 Til x, TypeName, StartDate. Disse to variablene skal være i samme rekkefølge som de primære nøkkelfeltene i tabellen Lagre i MyRST-verdien. Hvis ix deretter StartDate StartDate - 7 De 7 her antar ukentlig data 1 for daglige data. Hvis StartDate 8 6 93 Da MAvgs Null Exit Function 8 6 93 erstattes med den tidligste datoen i dataene i tabellen MySum Store i MySum Next i. MAvgs MySum Perioder End Function. Create følgende spørring basert på Table1-tabellen Query Query1 ----------- -------------------------------------------- Felt ValutaType FelttransaksjonDate feltfrekvens Felt Expr1 MAvgs 3, TransactionDate, CurrencyType. NOTE Denne spørringen vil generere et tre ukers glidende gjennomsnitt av Rate data For å beregne et lengre eller kortere glidende gjennomsnitt, endre nummer 3 i spørringen s Expr1-kolonnen til verdien du vil beregne Kjør spørringen Merk at du ser følgende tre ukers glidende gjennomsnitt for hver valuta. En null-verdi indikerer at det ikke var nok tidligere verdier til å beregne den uken s gjennomsnittlige ValutaType Tra nsactionDate Rate Expr1 Mark 08 06 93 0 5600 Mark 08 13 93 0 5700 Mark 08 20 93 0 5800 0 57 Mark 08 27 93 0 5900 0 58 Mark 09 03 93 0 6000 0 59 Yen 08 06 93 0 0079 Yen 08 13 93 0 0082 Yen 08 20 93 0 0085 0 0082 Yen 08 27 93 0 0088 0 0085 Yen 09 03 93 0 0091 0 0088.RE Flytende gjennomsnittlig beregning. dhookom Programmerer 28 Jun 10 21 15.Hvor gammel er den koden Den bruker ikke eksplisitt DAO og ikke nevner at dette ikke ville fungere med koblede tabeller. Dim MyDB som MyRST som. Jeg ville bruke en underspørsel i stedet for et rekordsett. Det kan se ut som om. SELECT ValutaType, TransaksjonsDate, Rate, SELECT Avgrente fra tabell1 B hvor og mellom - 14 OG FRA tabell1 A. RE Flytende gjennomsnittlig beregning. Det er virkelig perfekt. Jeg setter pris på din hjelp. Koden du ga, er imidlertid å beregne det fremre 14 dagers glidende gjennomsnittet som plasserer glidende gjennomsnitt i posten for dag 1 av gjennomsnittet, hvor Jeg ønsket at det skulle være et bakoverrettet gjennomsnitt, plassert i post 14 Jeg endret bare litt til følgende og det a ppears for å jobbe. SELECT SELECT Avgrate fra tabell1 B hvor og mellom 14 og som expr1 fra tabell1 som A. du kan se alt jeg gjorde var utveksling a for b i var klausulen. dette er en veldig stor hjelp til meg og jeg setter stor pris på at jeg ikke har sett koding som dette før, og ærlig talt forstår jeg ikke det jeg vet ikke hvordan SQL forstår hva B og A er jeg antar at de lager en slags alternativ referanse til tabell1 Hvis du kan gi noen veiledning, vil jeg virkelig sette pris på det. Også, kanskje noen referanse til materiale som jeg kunne se på. Jeg er alltid veldig spent på å lære noe nytt om VBA SQL, og jeg setter stor pris på din help. RE Flytende gjennomsnittlig beregning. PHV MIS 29 Jun 10 12 22.forstår hva B og A er de er alias es. RE Flytende gjennomsnittlig beregning. Takk, PHV Det gir bedre mening allerede. RE Flyttende gjennomsnittlig beregning. joshery420 TechnicalUser 6 Jul 10 15 06.Vi så aldri ved SQL-visning før svært hjelpsomme Jeg prøver å få denne koden å fungere i mitt eget datasett, og jeg er fast på et bestemt problem pd2004, ikke sikker på om den nye subquery-koden virket som den gamle VBA-koden eller ikke, men med dataene mine viser det fortsatt rullende gjennomsnitt selv om det ikke er nok dager for å opprette en lengde på et gjennomsnitt, f. eks. Hvis jeg har et 7-dagers rullende gjennomsnitt, viser dag 1 de samme dataene i 7DayAvg-kolonnen som den gjør i den daglige datakolonnen dag 2 viser gjennomsnittet av dagene 1 og 2 osv. Gjør noen av dere vite hvordan du skal fikse dette ved en tilfeldighet Også, takk for den gode kodetipset PHV. RE Flyttende gjennomsnittlig beregning. Joshery420 TechnicalUser 6 Jul 10 15 08.Vilkår, takk dhookom for kodespissen, ikke PHV Men hei , takket være dere begge XD. RE Moving Average Calculation. Jeg vil etterlate de beste løsningene til fagpersonene her, men du kan se i mitt opprinnelige innlegg hvordan Microsoft Help-eksemplet forsøker å håndtere det. Her er koden. Hvis StartDate 8 6 93 Deretter erstattes MAvgs Null Exit Function 8 6 93 med den tidligste datoen for dataene i tabellen. De er bare spennende funksjonen hvis datoen ikke passer de kriteriene jeg ikke vet om du kan inkorporere noe slikt i aliaskoden fra dhookem Jeg liker ikke deres måte å håndtere dette på, og jeg mistanke om at dhookem vil gi en mye mer elegant løsning For mitt formål er problemet du beskriver ikke et problem, men jeg vil være interessert i å se noen løsninger. RE Flyttende Gjennomsnittlig Beregning. dhookom Programmerer 6 Jul 10 17 05. Du kan prøve å bruke IIf for å teste for en telling av antall poster Forsiktig untested notepad-kode følger. SELECT IIF SELECT Antall rate FRA Tabell 1 C HVOR OG MELLOM - 14 OG VELG Avg. frekvens FRA Tabel 1 B HVOR OG MELLOM - 14 OG AS Ekspr1 FRA TABLE1 AS A. RE Flytende gjennomsnittlig beregning.
No comments:
Post a Comment