SQL-prosenttipiste

Sql Prosenttipiste



Mitkä ovat kaksi yleistä sanaa, jotka liittyvät niin läheisesti, että luulet niiden olevan samoja? Meille tietokantakehittäjille se olisi SQL-tietokanta ja tilastot.

Yksi yleisimmistä tilastolaskelmista, joka tulee esiin jopa tietokannan hallinnassa, on prosenttipiste.

Prosenttipiste on tilastollinen mitta, jonka avulla voimme jakaa tietojoukon yhtä suuriin osiin segmenttejä. Prosenttipisteiden tehtävänä on antaa käsitys datan jakautumisesta, jolla ymmärrämme, kuinka arvot jakautuvat.







Tässä opetusohjelmassa opimme, kuinka voimme laskea prosenttipisteet SQL:ssä tietojen jakamiseksi eri segmentteihin.



Esimerkkitaulukko

Aloitetaan perustamalla perustaulukko, joka sisältää esimerkkitiedot esittelytarkoituksiin. Tämä auttaa meitä havainnollistamaan, kuinka erilaiset prosenttipisteiden laskentamenetelmät käyttäytyvät ja tuloksena oleva tulos.



Luodaan taulukko nimeltä 'tuotteet', joka sisältää päivittäistavarakaupan tiedot. 'Luo taulukko' -lauseke on seuraava:





CREATE TABLE tuotteet (

product_id INT PRIMARY KEY AUTO_INCREMENT,

tuotteen_nimi VARCHAR( 255 ),

kategoria VARCHAR( 255 ),

hinta DECIMAL( 10 , 2 ),

määrä INT,

expiration_date DATE,

viivakoodi BIGINT

);

Kun olemme luoneet taulukon, voimme jatkaa ja lisätä näytetiedot taulukkoon. Voimme käyttää seuraavia 'insert'-lauseita:

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ( 'Kokin hattu 25cm' ,
'leipomo' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ( Viiriäisten munat - purkitettu ,
'ruokakomero' ,
17.99 ,
67 ,
'2023-09-29' ,
1708039594250 );

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ( 'Kahvi - Egg Nog Capuccino' ,
'leipomo' ,
92,53 ,
10 ,
'2023-09-22' ,
8704051853058 );

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ( 'Päärynä - Piikikäs' ,
'leipomo' ,
65,29 ,
48 ,
'2023-08-23' ,
5174927442238 );

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ( 'Pasta - enkelihiukset' ,
'ruokakomero' ,
48,38 ,
59 ,
'2023-08-05' ,
8008123704782 );

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ( 'Viini - Prosecco Valdobiaddene' ,
'tuottaa' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );

Lopuksi sinulla pitäisi olla seuraava taulukko:



SQL-prosenttipiste

Kuten voit arvata, prosenttipisteen laskentatapa voi vaihdella tietokantakoneesta riippuen. Yleisin menetelmä on kuitenkin funktioiden PERCENTILE_DISC() ja PERCENTILE_CONT() käyttö.

Nämä funktiot ovat osa Standard SQL -spesifikaatiota (2003). Siksi PostgreSQL ja Oracle tukevat sitä.

PERCENTILE_CONT()

Aloitetaan PERCENTILE_CONT()-funktiolla. Tämän funktion avulla voimme laskea prosenttipistearvot tietojoukon murto-osana.

Funktio palauttaa interpoloidut arvot, jotka eivät ehkä ole tarkkoja tietojoukkosi tietylle tietopisteelle.

Funktioiden syntaksi on seuraava:

PERCENTILE_CONT(prosenttipiste) SISÄLLÄ RYHMÄ ( TILAUS BY sarakkeen_nimi) YLI ();

Funktio hyväksyy seuraavat parametrit:

  • Prosenttipiste – Se määrittää halutun prosenttipisteen arvon (0,0 - 1,0).
  • sarakkeen_nimi – Se tarkoittaa saraketta, jonka prosenttipisteen haluamme laskea.
  • YLI () – Se asettaa ikkunatoiminnon määrittämään koko tietojoukon.

Esimerkki tämän toiminnon käytöstä on seuraava:

VALITSE

PERCENTILE_CONT( 0.5 ) SISÄLLÄ RYHMÄ ( TILAUS Hinnan mukaan) YLI () AS mediaani

FROM

Tuotteet;

Huomautus: Annettu kysely toimii vain PostgreSQL:ssä, koska MySQL ei tue WITHIN GROUPin käyttöä.

Tämä laskee 50 th prosenttipiste toimitetuista tiedoista.

PERCENTILE_DISC()

Voimme käyttää PERCENTILE_DISC()-funktiota laskeaksemme prosenttipistearvon erillisenä arvona suoraan tietojoukosta.

Funktio palauttaa arvon, joka vastaa todellista datapistettä.

Funktion syntaksi on seuraava (PostgreSQL):

PERCENTILE_DISC(prosenttipiste) SISÄLLÄ RYHMÄ ( TILAUS BY sarakkeen_nimi) YLI ();

Esimerkkituloste on seuraava:

VALITSE

PERCENTILE_DISC( 0,25 ) SISÄLLÄ RYHMÄ ( TILAUS Hinnan mukaan) YLI () AS prosenttipiste_25

FROM

Tuotteet;

Tämän pitäisi laskea 25 th prosenttipiste tiedoista.

Johtopäätös

Tässä opetusohjelmassa käsiteltiin eri funktioiden käyttöä SQL-tietokantojen prosenttipisteiden laskemiseen.