Funzione mediana di PostgreSQL

Funzione mediana di PostgreSQL
La mediana calcolatrice è obbligato a ottenere il valore medio dai dati. Come molte altre funzioni, PostgreSQL fornisce una vasta gamma di versatilità nel trattare la funzione mediana. Si preoccupa di trovare il valore mediano dalla colonna della tabella su cui viene utilizzata la mediana. Contrariamente al conteggio delle funzioni aggregate di PostgreSQL, somma, non esiste una funzione specifica utilizzata per calcolare l'aggregato della mediana. La mediana è una funzione definita dall'utente.

In semplici funzioni aritmetiche, ci sono diversi mezzi e formule per trovare la mediana in tutti i dati forniti in testo normale o in forma tabulare. Mentre nel caso dei sistemi di database, utilizziamo alcune altre funzioni integrate combinate per ottenere il valore della mediana. Questo articolo elaborerà alcune delle tecniche più efficienti e anche una funzione manuale creata da noi per recuperare la mediana dai dati in PostgreSQL.

Utilizzo di Perpartile_Count () e Perpartile_Disc ()

Questi entrambi sono i modi per ottenere una mediana in un modo leggermente diverso. Perché la differenza nei loro valori risultanti si basa sulle loro metodologie. Il percentile si riferisce per ritrarre il valore dei dati con una percentuale di cento. Ma per la mediana, usiamo (0.5) Valore. La differenza principale tra entrambi è che percentuale_count () interpola il valore e il suo lavoro si basa sulla distribuzione continua dei valori, mentre percentuale_disc () restituisce il valore dai dati indicati e si basa sul calcolo del percentile sulla distribuzione discreta.

La sintassi per entrambi questi percentili è:

Seleziona percentuale_count (0.5) all'interno del gruppo (ordine per x) dai valori (a), (b), (c), (d)) v (x);
Seleziona percentuale_disc (0.5) all'interno del gruppo (ordine per x) dai valori (a), (b), (c), (d)) v (x);

Per i valori indicati, percentuale_disc restituirà gli unici valori presenti nei dati. Percentuale_count calcola la mediana per i valori. Ad esempio tra i numeri pari. Nell'esempio di cui sopra, percentuale_count fornirà a "5" il numero tra i valori 3 e 7. E percentuale_disc mostra 7 dalla discendenza. Poiché il valore per questa funzione proviene sempre dai dati disponibili. Quindi fornisce il valore più vicino alla mediana dopo i calcoli.

Poiché i dati nel postgresql sono presenti nelle relazioni (tabella), il percentile viene applicato sulla colonna di un valore numerico (pay). Abbiamo creato un tavolo chiamato Professor. La seguente query ci aiuterà a illustrare prima gli attributi della tabella e quindi applicare il percentuale_disc () su di esso.

>> seleziona * dal professore; Seleziona percentuale_disc (0.5) all'interno del gruppo (ordine per professione.retribuzione) dal professore;

La prima metà della query visualizzerà il contenuto della tabella. mentre la seconda parte selezionerà il valore percentile. Un ordine per clausola viene applicato qui. Questa clausola organizzerà gli elementi della colonna pertinente in ordine crescente, quindi applicherà la funzione su di essa. La colonna (retribuzione) è in uso per questa query da eseguire.

Dopo l'esecuzione, il risultato è 51, un valore distinto ottenuto dalla funzione percentile. Per renderlo più chiaro, viene utilizzato un semplice "ntile" di 100 per disporre ogni elemento della colonna in ordine crescente.

>> Seleziona professore. Pay, ntile (100) oltre (ordine del professore. retribuzione) dal professore;

Il comando sopra menzionato trasmette la colonna "pay" dalla tabella. Ha reso più facile capire come opererà percentuale. Poiché i numeri totali nella colonna "pay" sono anche 8 righe che sono. Quindi è difficile ottenere il punto medio accurato dei dati. Disco () andrà per il valore più vicino. Questo è "51" secondo l'ordine ascendente.

Nel caso di percentuale_count, il resto del comando è lo stesso, ma la funzione viene cambiata da disco a cont. Poiché il nome indica il funzionamento di percentuale_cont, il valore è sotto forma di continuità, il che non significa finora senza fine. Quindi il risultato sarà sempre in forma decimale. Questo conferirà la metà di due numeri adiacenti. In altre parole, questa funzione recupera i due numeri presenti al centro della colonna, nel caso di numeri pari.

>> Seleziona percentuale_count (0.5) All'interno del gruppo (ordine di ProfrSsor.retribuzione) dal professore;

Tra 51 e 52 è "51.5 "è il valore continuo accurato della mediana nella colonna" Pay ".

Puoi anche modificare il valore percentile in qualsiasi funzione. Ad esempio, usiamo 0.25, 0.5 e 0.75 come parametro in percentile_disc ().

PROPRIALILE_DISC (0.25)
PROPRIALILE_DISC (0.5)
PROPRIALILE_DIC (0.75)

Tutti i valori vengono visualizzati collettivamente in una singola riga usando questa sintassi nella funzione. Considera lo scatto che abbiamo allegato, che mostra il ntile della colonna, tutti i valori sono ordinati in ordine crescente. Se 0.5 porta al valore "51", quindi per 0.25, è 8 e per “0.75 "è 77. Come è il numero presente su Id 4, quindi per 0.25, viene calcolato in base al 4 ° ID rispettivamente. E simile è il caso con 0.75.

Uso della funzione per mediana

Per far rispettare la funzione per il calcolo della mediana della tabella, dobbiamo avere una nuova tabella di esempio. Dopo la creazione, i valori verranno aggiunti per farlo nello stato funzionale. La tabella temporanea viene utilizzata perché non abbiamo bisogno di questi dati per un tempo più lungo per esistere nel database.

>> Crea una tabella temporanea mediana (id serisl, classe varchar (50), nome varchar (50), decimale di grado (5,1)); >> inserisci in valori mediani (classe, nome, grado) ('x', 'y', z);

Dopo l'inserimento del valore, faremo un'idea dei dati inseriti. A tale scopo, utilizzare l'istruzione Seleziona.

>> Seleziona * dalla mediana,

In questa funzione, la mediana per ogni classe verrà calcolata separatamente. Questo partizionamento è secondo la colonna di classe. I dati sono ordinati in entrambi gli ordini ASC e DESC. Una nuova funzione è inizializzata qui numero di riga (). Questo prenderà il numero di riga e quindi applicherà le operazioni in base ad esso. Diamo un'occhiata al codice. Quindi lo abbatteremo per vedere cosa sta succedendo qui per ottenere la mediana.

Viene utilizzato il comando seleziona che introduce la sottoquery. Questa sottoquery utilizza quel numero di riga () che organizzerà le righe in ordine crescente e discendente. Per ogni classe, gli ordini vengono utilizzati per i numeri di riga.

Ogni volta che sei alla ricerca della mediana nell'elenco di avere i valori in numero pari, la risposta sta sempre nel prendere la media dei due numeri medi come fanno il percentile_cont. Questo sta accadendo in questo comando per ottenere la mediana.

Rowasc in (RowDesc, RowDesc - 1, RowDesc + 1)

Il risultato viene inviato dalla sottoquery alla query principale. E poi viene calcolata una media. Per la matematica, ne abbiamo 72.0, la metà prevista nel caso di un elenco dispari di valori. Considerando che per la scienza, è 76.5. Ha un numero pari nelle materie scientifiche, quindi otteniamo a metà di 72 e 81.

Conclusione

La funzione mediana di PostgreSQL semplifica la ricerca del punto medio in dati semplici o tabulari più semplice che calcolarlo manualmente. Sebbene sia una funzione creata dall'utente, utilizza alcune funzioni integrate per recuperare il record pertinente. Percentile_Cont e percentile_Disc sono considerati il ​​nucleo dell'argomento in discussione. Poiché il loro silenzioso supporto nel fornire un concetto mediano nella funzione è notevole. Tuttavia, tutte queste funzioni sono sufficienti per trovare la mediana.