SQL procentile

Sql Procentile



Kādi ir divi bieži sastopamie vārdi, kas ir tik cieši saistīti, ka jūs domājat, ka tie ir vienādi? Mums, datu bāzu izstrādātājiem, tā būtu SQL datubāze un statistika.

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:

ievietot
iekšā
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ĪT

PERCENTILE_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ĪT

PERCENTILE_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.