Se vedi questo messaggio, il browser o ha disattivato o non supporta JavaScript. Per utilizzare tutte le funzionalità di questo sistema di aiuto, come la ricerca, il browser deve avere il supporto JavaScript abilitato. Medie Mobili calibrati con medie mobili semplici, ogni valore di dati nel quotwindowquot in cui viene eseguito il calcolo viene dato un significato o di pari peso. È spesso il caso, soprattutto nell'analisi dei dati prezzo finanziaria, che dati più recenti cronologicamente dovrebbero avere un peso maggiore. In questi casi, ponderata media mobile (o media mobile esponenziale - vedere il seguente argomento) funzionalità è spesso preferito. Si consideri la stessa tabella di valori dei dati di vendita per dodici mesi: Per calcolare una media mobile ponderata: calcolare quanti intervalli di dati partecipano al calcolo della media mobile (vale a dire la dimensione del quotwindowquot di calcolo). Se la finestra di calcolo si dice che sia n, allora il più recente valore di dati nella finestra è moltiplicato per n, il prossimo più recente moltiplicato per n-1, il valore prima che moltiplicato per n-2 e così via per tutti i valori nella finestra. Dividere la somma di tutti i valori moltiplicato per la somma dei pesi per dare la media mobile ponderata su quella finestra. Posizionare il Moving valore medio ponderato in una nuova colonna a seconda del posizionamento media di trascinamento sopra descritto. Per illustrare questi passaggi, considerare se è necessario un 3 mesi ponderata media mobile di vendite nel mese di dicembre (utilizzando la tabella sopra dei valori di vendita). Il termine quot3-monthquot implica che il quotwindowquot calcolo è 3, quindi il mobile ponderata algoritmo di media di calcolo per questo caso dovrebbe essere: Oppure, se un 3 mesi Weighted Moving Average sono stati valutati su tutta la gamma originale dei dati, i risultati sarebbero : 3 mesi ponderata AverageThis Moving è una domanda sempreverde Joe Celko. Ignoro quale piattaforma DBMS utilizzato. Ma in ogni caso Joe era in grado di rispondere a più di 10 anni fa con lo standard SQL. Joe Celko SQL Puzzle e risposte citazione: Quel tentativo ultimo aggiornamento suggerisce che potremmo usare il predicato per costruire una query che ci darebbe una media mobile: è la colonna extra o il metodo di query meglio la query è tecnicamente migliore perché l'approccio aggiornamento denormalizzare il database. Tuttavia, se i dati storici in fase di registrazione non sta per cambiare e calcolando la media mobile è costoso, si potrebbe considerare l'utilizzo di un approccio di colonna. interrogazione SQL Puzzle: con tutti i mezzi uniforme. Basta buttare al secchio peso appropriato a seconda della distanza dal punto di tempo corrente. Per esempio quottake weight1 per datapoints entro 24 ore dalla corrente weight0.5 datapoint per datapoints all'interno 48hrsquot. Questo caso è importante quanto datapoint consecutivi (come 06:12 e 23:48) sono distanti l'uno dall'altro Un caso d'uso mi viene in mente sarebbe un tentativo di smussare l'istogramma ovunque datapoints non sono abbastanza denso msciwoj ndash 27 Maggio 15 a 22:22 non sono sicuro che il risultato atteso (uscita) mostra classica media mobile semplice (rolling) per 3 giorni. Perché, per esempio, la prima terna di numeri per definizione dà: ma ci si aspetta 4.360 e la sua confusione. Tuttavia, suggerisco la soluzione seguente, che utilizza la finestra funzione AVG. Questo approccio è molto più efficiente (chiaro e meno intensivo di risorse) di auto collegamento introdotto in altre risposte (e Im sorpreso che nessuno ha dato una soluzione migliore). Si vede che AVG è avvolto con caso in cui p. days rownum GT poi a forzare s NULL in prima fila, dove 3 giorni di media mobile è privo di significato. risposto 23 febbraio 16 a 13:12 Possiamo applicare Joe Celkos sporco esterno sinistro metodo join (come citato in precedenza da Diego Scaravaggi) di rispondere alla domanda come è stato chiesto. Genera l'output richiesto: una risposta 9 gennaio 16 ad 0:33 tua risposta 2017 Stack Exchange, IncIm cercando di attuare una media mobile esponenziale (EMA) a Postgres, ma come posso controllare la documentazione e penso e più mi provare il più confuso io am. La formula per EMA (x) è: Sembra essere perfetto per un aggregatore, mantenendo il risultato dell'ultimo elemento calcolato è esattamente ciò che deve essere fatto qui. Tuttavia un aggregatore produce un singolo risultato (come ridurre o lasciare) e qui abbiamo bisogno di un elenco (una colonna) dei risultati (come mappa). Sono stato verificare come procedure e funzioni di lavoro, ma per quanto ne so che producono una singola uscita, non è una colonna. Ho visto un sacco di procedure e funzioni, ma non posso davvero capire come funziona questo interagisce con l'algebra relazionale, soprattutto quando si fa qualcosa di simile, un EMA. Non ho avuto la fortuna ricerca Internets finora. Ma la definizione di un EMA è abbastanza semplice, spero che sia possibile tradurre questa definizione in qualcosa che funziona in Postgres ed è semplice ed efficace, perché lo spostamento di NoSQL sarà eccessivo nel mio contesto. E 'questo il calcolo l'aggregazione che produce il risultato in ogni riga per ogni sottolista dei dati di input Perché sembra che sta usando l'aggregatore fino a remare n, restituendo il risultato e poi andare a remare 0 per calcolare l'aggregazione fino a remare n1 ancora. C'è un modo per utilizzare l'accumulo o qualche variabile statica (come in C) in modo che questo deve essere calcolato una volta, grazie. ndash Trylks 20 gennaio 12 alle 11:59 No, it39s utilizzando il valore accumulato. Se si esegue la query con il quotraise infoquot comando commentata, you39ll essere in grado di vedere che la funzione viene chiamata solo una volta per ogni uscita fila. Postgresql emette il valore dello stato su ogni riga (se ci fosse un finalfunc definita, che sarebbe chiamato a trasformare lo stato di un valore di uscita). ndash araqnid 20 Jan 12 in 00:04 ErwinBrandstetter: Ho ripristinato maggior parte dei cambiamenti - nel caso del formato della prima parte (ancoraggio) della query, EMA (x1) può essere rappresentata chiaramente con una singola linea - questo corespnds alla singola linea definirla in questione. Nel caso della parte ricorsiva della query, ho usato mn - 1 nella condizione di join per indicare l'equivalenza del rapporto con EMA (xn-1) per la questione, anche se questo sarà meno performante se le prestazioni è un problema, l'OP può cambiare la condizione di join per essere come lei ha suggerito. ndash Mark Bannister 16 gennaio 12 in 09:27
Comments
Post a Comment