Viens no izplatītākajiem statistikas aprēķiniem, kas rodas pat datu bāzes administrēšanā, ir procentile.
Procentile ir statistikas mērs, kas ļauj sadalīt datu kopu vienādās segmentu daļās. Percentiļu uzdevums ir sniegt ieskatu datu sadalījumā, kas ir veids, kā mēs saprotam, kā vērtības tiek sadalītas.
Šajā apmācībā mēs uzzināsim, kā mēs varam aprēķināt procentiles SQL, lai sadalītu datus dažādos segmentos.
Tabulas paraugs
Sāksim ar pamata tabulas iestatīšanu, kurā ir datu paraugi demonstrācijas nolūkiem. Tas palīdz mums ilustrēt, kā darbojas dažādas procentiļu aprēķināšanas metodes un iegūto rezultātu.
Izveidosim tabulu ar nosaukumu “produkti”, kurā ir iekļauta pārtikas preču informācija. Tabulas izveides klauzula ir šāda:
CREATE TABLE produkti (
product_id INT PRIMARY KEY AUTO_INCREMENT,
produkta_nosaukums VARCHAR( 255 ),
kategorija VARCHAR( 255 ),
cena DECIMAL( 10 , 2 ),
daudzums INT,
expiration_date DATE,
svītrkods BIGINT
);
Kad esam izveidojuši tabulu, mēs varam turpināt un pievienot tabulai datu paraugus. Mēs varam izmantot šādus “ievietojiet” paziņojumus:
ievietotiekšā
produkti (produkta_nosaukums,
kategorija,
cena,
daudzums,
derīguma termiņš,
svītrkods)
vērtības ( 'Pavāra cepure 25 cm' ,
'maizes ceptuve' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );
ievietot
iekšā
produkti (produkta_nosaukums,
kategorija,
cena,
daudzums,
derīguma termiņš,
svītrkods)
vērtības ( 'Paipalu olas - konservētas' ,
'pieliekamais' ,
17.99 ,
67 ,
'2023-09-29' ,
1708039594250 );
ievietot
iekšā
produkti (produkta_nosaukums,
kategorija,
cena,
daudzums,
derīguma termiņš,
svītrkods)
vērtības ( Kafija — olu kapučīno ,
'maizes ceptuve' ,
92.53 ,
10 ,
“2023-09-22” ,
8704051853058 );
ievietot
iekšā
produkti (produkta_nosaukums,
kategorija,
cena,
daudzums,
derīguma termiņš,
svītrkods)
vērtības ( 'Bumbieris — dzeloņains' ,
'maizes ceptuve' ,
65.29 ,
48 ,
'2023-08-23' ,
5174927442238 );
ievietot
iekšā
produkti (produkta_nosaukums,
kategorija,
cena,
daudzums,
derīguma termiņš,
svītrkods)
vērtības ( 'Makaroni - eņģeļu mati' ,
'pieliekamais' ,
48.38 ,
59 ,
“2023-08-05” ,
8008123704782 );
ievietot
iekšā
produkti (produkta_nosaukums,
kategorija,
cena,
daudzums,
derīguma termiņš,
svītrkods)
vērtības ( 'Vīns - Prosecco Valdobiaddene' ,
'ražot' ,
44.18 ,
3 ,
“2023-03-13” ,
6470981735653 );
Beigās jums ir jābūt šādai tabulai:
SQL procentile
Kā jau nojaušat, procentiles aprēķināšanas veids var atšķirties atkarībā no datu bāzes programmas. Tomēr visizplatītākā metode ir funkciju PERCENTILE_DISC() un PERCENTILE_CONT() izmantošana.
Šīs funkcijas ir daļa no standarta SQL specifikācijas (2003). Tādējādi to noteikti atbalsta PostgreSQL un Oracle.
PERCENTILE_CONT()
Sāksim ar funkciju PERCENTILE_CONT(). Šī funkcija ļauj mums aprēķināt procentiles vērtības kā datu kopas daļu.
Funkcija atgriež interpolētas vērtības, kas var nebūt precīzas konkrētajam datu punktam jūsu datu kopā.
Funkcijas sintakse ir šāda:
PERCENTILE_CONT(procentile) WITHIN GRUPA ( PASŪTĪT PĒC kolonnas_nosaukuma) OVER ();Funkcija pieņem šādus parametrus:
- Procentile — tā norāda vēlamo procentiles vērtību (no 0,0 līdz 1,0).
- kolonnas_nosaukums — tas apzīmē kolonnu, kurai mēs vēlamies aprēķināt procentili.
- OVER () — tas iestata loga funkciju, lai norādītu visu datu kopu.
Šīs funkcijas izmantošanas piemērs ir šāds:
ATLASĪTPERCENTILE_CONT( 0.5 ) IEKŠĀ GRUPA ( PASŪTĪT PĒC cenas) VAIRĀK () KĀ mediāna
NO
produkti;
Piezīme. Dotais vaicājums darbojas tikai programmā PostgreSQL, jo MySQL neatbalsta WITHIN GROUP izmantošanu.
Tas aprēķina 50 th sniegto datu procentile.
PERCENTILE_DISC()
Mēs varam izmantot funkciju PERCENTILE_DISC(), lai aprēķinātu procentiles vērtību kā diskrētu vērtību tieši no datu kopas.
Funkcija atgriež vērtību, kas atbilst faktiskajam datu punktam.
Funkcijas sintakse ir šāda (PostgreSQL):
PERCENTILE_DISC(procentile) WITHIN GRUPA ( PASŪTĪT PĒC kolonnas_nosaukuma) OVER ();Izvades piemērs ir šāds:
ATLASĪTPERCENTILE_DISC( 0.25 ) IEKŠĀ GRUPA ( PASŪTĪT PĒC cenas) VAIRĀK () AS procentile_25
NO
produkti;
Tam vajadzētu aprēķināt 25 th datu procentile.
Secinājums
Šajā apmācībā tika apskatīts, kā izmantot dažādas funkcijas, lai aprēķinātu procentiles SQL datu bāzēs.