Az egyik gyakori statisztikai számítás, amely még az adatbázis-adminisztráció során is felmerül, a percentilis.
A percentilis egy statisztikai mérőszám, amely lehetővé teszi, hogy egy adatkészletet szegmensek egyenlő részeire osszanak fel. A percentilisek szerepe az, hogy betekintést nyújtsanak az adatok eloszlásába, így megértjük, hogyan oszlanak el az értékek.
Ebben az oktatóanyagban megtanuljuk, hogyan számíthatjuk ki az SQL-ben a percentiliseket, hogy az adatokat különböző szegmensekre oszthassuk.
Minta táblázat
Kezdjük egy alaptáblázat felállításával, amely mintaadatokat tartalmaz demonstrációs célból. Ez segít szemléltetni, hogyan viselkednek a százalékosok kiszámításának különböző módszerei és az eredmény.
Hozzunk létre egy „termékek” nevű táblázatot, amely tartalmazza az élelmiszerbolttal kapcsolatos információkat. A „tábla létrehozása” záradék a következő:
CREATE TABLE termékek (
product_id INT ELSŐDLEGES KULCS AUTO_INCREMENT,
termék_neve VARCHAR( 255 ),
kategória VARCHAR( 255 ),
ár DECIMAL( 10 , 2 ),
mennyiség INT,
expiration_date DATE,
vonalkód BIGINT
);
Miután elkészítettük a táblázatot, folytathatjuk és hozzáadhatjuk a mintaadatokat a táblázathoz. A következő „insert” utasításokat használhatjuk:
betét-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ( 'Séf kalap 25 cm' ,
'pékség' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );
betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ( „Fürjtojás – konzerv” ,
'éléskamra' ,
17.99 ,
67 ,
'2023-09-29' ,
1708039594250 );
betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ( 'Coffee - Egg Nog Capuccino' ,
'pékség' ,
92,53 ,
10 ,
'2023-09-22' ,
8704051853058 );
betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ( 'Körte – tüskés' ,
'pékség' ,
65.29 ,
48 ,
'2023-08-23' ,
5174927442238 );
betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ( 'tészta - angyalhaj' ,
'éléskamra' ,
48.38 ,
59 ,
'2023-08-05' ,
8008123704782 );
betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ( 'Bor - Prosecco Valdobiaddene' ,
'termelni' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );
A végén legyen egy táblázatod a következőképpen:
SQL százalékos
Ahogy sejtheti, a percentilis kiszámításának módja az adatbázis-motortól függően eltérő lehet. A leggyakoribb módszer azonban a PERCENTILE_DISC() és PERCENTILE_CONT() függvények használata.
Ezek a funkciók a Standard SQL specifikáció (2003) részét képezik. Ezért a PostgreSQL és az Oracle támogatnia kell.
PERCENTILE_CONT()
Kezdjük a PERCENTILE_CONT() függvénnyel. Ez a függvény lehetővé teszi, hogy a százalékos értékeket az adatkészlet töredékeként számítsuk ki.
A függvény olyan interpolált értékeket ad vissza, amelyek esetleg nem pontosak az adathalmaz adott adatpontjához.
A függvény szintaxisa a következő:
PERCENTILE_CONT(percentilis) BELÜL CSOPORT ( RENDELÉS BY oszlopnév) OVER ();A függvény a következő paramétereket fogadja el:
- Percentilis – Megadja a kívánt százalékos értéket (0,0 és 1,0 között).
- oszlop_neve – Azt az oszlopot jelöli, amelynek százalékos értékét ki szeretnénk számítani.
- OVER () – Beállítja az ablak funkciót a teljes adatkészlet megadására.
Egy példa a funkció használatára a következő:
KIVÁLASZTÁSPERCENTILE_CONT( 0.5 ) BELÜL CSOPORT ( RENDELÉS Ár szerint) FELTE () MINT medián
TÓL TŐL
Termékek;
Megjegyzés: A megadott lekérdezés csak PostgreSQL-ben működik, mivel a MySQL nem támogatja a WITHIN GROUP használatát.
Ez kiszámítja az 50-et th a megadott adatok százalékpontja.
PERCENTILE_DISC()
A PERCENTILE_DISC() függvény segítségével a százalékos értéket diszkrét értékként közvetlenül az adatkészletből számíthatjuk ki.
A függvény egy tényleges adatpontnak megfelelő értéket ad vissza.
A függvény szintaxisa a következő (PostgreSQL):
PERCENTILE_DISC(percentilis) BELÜL CSOPORT ( RENDELÉS BY oszlopnév) OVER ();Egy példa kimenet a következő:
KIVÁLASZTÁSPERCENTILE_DISC( 0,25 ) BELÜL CSOPORT ( RENDELÉS Ár szerint) FELTE () AS százalékos_25
TÓL TŐL
Termékek;
Ennek ki kell számítania a 25-öt th az adatok százalékpontja.
Következtetés
Ez az oktatóanyag bemutatja, hogyan lehet a különböző függvényeket használni az SQL-adatbázisok percentiliseinek kiszámításához.