Percentila SQL

Percentila Sql



Care sunt cele două cuvinte comune care sunt atât de strâns legate încât ai crede că sunt la fel? Pentru noi, dezvoltatorii de baze de date, ar fi baza de date SQL și statisticile.

Unul dintre calculele statistice comune care apar chiar și în administrarea bazelor de date este o percentilă.

O percentilă este o măsură statistică care ne permite să împărțim un set de date în părți egale de segmente. Rolul percentilelor este de a oferi o perspectivă asupra distribuției datelor, care este modul în care înțelegem cum sunt distribuite valorile.







În acest tutorial, vom afla cum putem calcula percentilele în SQL pentru a împărți datele în diferite segmente.



Tabel Eșantion

Să începem prin a configura un tabel de bază care conține un exemplu de date în scop demonstrativ. Acest lucru ne ajută să ilustrăm modul în care se comportă diferitele metode de calcul a percentilelor și rezultatul rezultat.



Să creăm un tabel numit „produse” care conține informațiile despre alimente. Clauza „creare tabel” este următoarea:





Produse CREATE TABLE (

product_id INT PRIMARY KEY AUTO_INCREMENT,

nume_produs VARCHAR( 255 ),

categoria VARCHAR( 255 ),

pret DECIMAL( 10 , 2 ),

cantitate INT,

expiration_date DATE,

cod de bare BIGINT

);

Odată ce am creat tabelul, putem continua și adăuga datele eșantion în tabel. Putem folosi următoarele declarații „inserat”:

introduce
în
produse (nume_produs,
categorie,
Preț,
cantitate,
data expirării,
cod de bare)
valori ( „Pălărie de bucătar 25 cm” ,
'brutărie' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );

introduce
în
produse (nume_produs,
categorie,
Preț,
cantitate,
data expirării,
cod de bare)
valori ( 'Ouă de prepeliță - Conserve' ,
'cămară' ,
17.99 ,
67 ,
„2023-09-29” ,
1708039594250 );

introduce
în
produse (nume_produs,
categorie,
Preț,
cantitate,
data expirării,
cod de bare)
valori ( „Cafea - Capuccino cu ciugul de ou” ,
'brutărie' ,
92,53 ,
10 ,
'2023-09-22' ,
8704051853058 );

introduce
în
produse (nume_produs,
categorie,
Preț,
cantitate,
data expirării,
cod de bare)
valori ( 'Pere - înțepător' ,
'brutărie' ,
65,29 ,
48 ,
„2023-08-23” ,
5174927442238 );

introduce
în
produse (nume_produs,
categorie,
Preț,
cantitate,
data expirării,
cod de bare)
valori ( „Paste – păr de înger” ,
'cămară' ,
48,38 ,
59 ,
„2023-08-05” ,
8008123704782 );

introduce
în
produse (nume_produs,
categorie,
Preț,
cantitate,
data expirării,
cod de bare)
valori ( „Vin – Prosecco Valdobiaddene” ,
'legume şi fructe' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );

La sfârșit, ar trebui să aveți un tabel după cum urmează:



Percentila SQL

După cum puteți ghici, modul de calcul al percentilei poate diferi în funcție de motorul bazei de date. Cu toate acestea, cea mai comună metodă este utilizarea funcțiilor PERCENTILE_DISC() și PERCENTILE_CONT().

Aceste funcții fac parte din specificația Standard SQL (2003). Prin urmare, este obligatoriu să fie suportat de PostgreSQL și Oracle.

PERCENTILE_CONT()

Să începem cu funcția PERCENTILE_CONT(). Această funcție ne permite să calculăm valorile percentilei ca o fracțiune din setul de date.

Funcția returnează valori interpolate care ar putea să nu fie precise la punctul de date specific din setul de date.

Sintaxa funcției este următoarea:

PERCENTILE_CONT(percentila) WITHIN GRUP ( ORDIN BY nume_coloană) OVER ();

Funcția acceptă următorii parametri:

  • Percentilă – Specifică valoarea percentilei dorită (de la 0,0 la 1,0).
  • column_name – Indică coloana pentru care dorim să calculăm percentila.
  • OVER () – Setează funcția ferestrei pentru a specifica întregul set de date.

Un exemplu despre cum să utilizați această funcție este următorul:

SELECTAȚI

PERCENTILE_CONT( 0,5 ) ÎN GRUP ( ORDIN DUPĂ preț) Peste () CA mediană

DIN

produse;

Notă: Interogarea dată funcționează numai în PostgreSQL, deoarece MySQL nu acceptă utilizarea WITHIN GROUP.

Aceasta calculează 50 th percentila din datele furnizate.

PERCENTILE_DISC()

Putem folosi funcția PERCENTILE_DISC() pentru a calcula valoarea percentilei ca valoare discretă direct din setul de date.

Funcția returnează o valoare care corespunde unui punct de date real.

Sintaxa funcției este următoarea (PostgreSQL):

PERCENTILE_DISC(percentila) WITHIN GRUP ( ORDIN BY nume_coloană) OVER ();

Un exemplu de ieșire este după cum urmează:

SELECTAȚI

PERCENTILE_DISC( 0,25 ) ÎN GRUP ( ORDIN DUPĂ preț) Peste () AS percentila_25

DIN

produse;

Aceasta ar trebui să calculeze 25 th percentilă a datelor.

Concluzie

Acest tutorial a acoperit cum să utilizați diferitele funcții pentru a calcula percentilele în bazele de date SQL.