SQL-Perzentil

Sql Perzentil



Was sind die beiden gebräuchlichen Wörter, die so eng miteinander verbunden sind, dass man meinen könnte, sie seien gleich? Für uns Datenbankentwickler wären es die SQL-Datenbank und Statistiken.

Eine der häufigsten statistischen Berechnungen, die auch in der Datenbankverwaltung auftauchen, ist ein Perzentil.

Ein Perzentil ist ein statistisches Maß, das es uns ermöglicht, einen Datensatz in gleiche Teile von Segmenten zu unterteilen. Die Rolle von Perzentilen besteht darin, einen Einblick in die Datenverteilung zu geben. Auf diese Weise können wir verstehen, wie die Werte verteilt sind.







In diesem Tutorial erfahren wir, wie wir die Perzentile in SQL berechnen können, um die Daten in verschiedene Segmente aufzuteilen.



Beispieltabelle

Beginnen wir mit der Einrichtung einer Basistabelle, die zu Demonstrationszwecken Beispieldaten enthält. Dies hilft uns zu veranschaulichen, wie sich die verschiedenen Methoden zur Berechnung der Perzentile verhalten und welche Ergebnisse daraus resultieren.



Lassen Sie uns eine Tabelle mit dem Namen „Produkte“ erstellen, die die Lebensmittelinformationen enthält. Die Klausel „Tabelle erstellen“ lautet wie folgt:





TABELLE ERSTELLEN Produkte (

produkt_id INT PRIMÄRSCHLÜSSEL AUTO_INCREMENT,

Produktname VARCHAR( 255 ),

Kategorie VARCHAR( 255 ),

Preis DEZIMAL( 10 , 2 ),

Menge INT,

expiration_date DATUM,

Barcode BIGINT

);

Sobald wir die Tabelle erstellt haben, können wir fortfahren und die Beispieldaten zur Tabelle hinzufügen. Wir können die folgenden „insert“-Anweisungen verwenden:

einfügen
hinein
Produkte (Produktname,
Kategorie,
Preis,
Menge,
Verfallsdatum,
Barcode)
Werte ( 'Kochmütze 25cm' ,
'Bäckerei' ,
24.67 ,
57 ,
'09.09.2023' ,
2854509564204 );

einfügen
hinein
Produkte (Produktname,
Kategorie,
Preis,
Menge,
Verfallsdatum,
Barcode)
Werte ( „Wachteleier – Konserviert“ ,
'Speisekammer' ,
17,99 ,
67 ,
'29.09.2023' ,
1708039594250 );

einfügen
hinein
Produkte (Produktname,
Kategorie,
Preis,
Menge,
Verfallsdatum,
Barcode)
Werte ( „Kaffee – Eierlikör-Cappuccino“ ,
'Bäckerei' ,
92,53 ,
10 ,
'2023-09-22' ,
8704051853058 );

einfügen
hinein
Produkte (Produktname,
Kategorie,
Preis,
Menge,
Verfallsdatum,
Barcode)
Werte ( 'Birne - Stachelig' ,
'Bäckerei' ,
65,29 ,
48 ,
'23.08.2023' ,
5174927442238 );

einfügen
hinein
Produkte (Produktname,
Kategorie,
Preis,
Menge,
Verfallsdatum,
Barcode)
Werte ( „Pasta – Engelshaar“ ,
'Speisekammer' ,
48,38 ,
59 ,
'05.08.2023' ,
8008123704782 );

einfügen
hinein
Produkte (Produktname,
Kategorie,
Preis,
Menge,
Verfallsdatum,
Barcode)
Werte ( „Wein – Prosecco Valdobiaddene“ ,
'produzieren' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );

Am Ende sollten Sie eine Tabelle wie folgt haben:



SQL-Perzentil

Wie Sie sich vorstellen können, kann die Methode zur Berechnung des Perzentils je nach Datenbank-Engine unterschiedlich sein. Die gebräuchlichste Methode ist jedoch die Verwendung der Funktionen PERCENTILE_DISC() und PERCENTILE_CONT().

Diese Funktionen sind Teil der Standard SQL-Spezifikation (2003). Daher wird es zwangsläufig von PostgreSQL und Oracle unterstützt.

PERCENTILE_CONT()

Beginnen wir mit der Funktion PERCENTILE_CONT(). Mit dieser Funktion können wir die Perzentilwerte als Bruchteil des Datensatzes berechnen.

Die Funktion gibt interpolierte Werte zurück, die für den spezifischen Datenpunkt in Ihrem Datensatz möglicherweise nicht genau sind.

Die Funktionssyntax lautet wie folgt:

PERCENTILE_CONT(Perzentil) INNERHALB GRUPPE ( BEFEHL BY Spaltenname) OVER ();

Die Funktion akzeptiert die folgenden Parameter:

  • Perzentil – Gibt den gewünschten Perzentilwert an (0,0 bis 1,0).
  • Spaltenname – Bezeichnet die Spalte, für die wir das Perzentil berechnen möchten.
  • OVER() – Legt die Fensterfunktion fest, um den gesamten Datensatz anzugeben.

Ein Beispiel für die Verwendung dieser Funktion lautet wie folgt:

WÄHLEN

PERCENTILE_CONT( 0,5 ) INNERHALB GRUPPE ( BEFEHL NACH Preis) ÜBER () AS Median

AUS

Produkte;

Hinweis: Die angegebene Abfrage funktioniert nur in PostgreSQL, da MySQL die Verwendung von WITHIN GROUP nicht unterstützt.

Dies berechnet die 50 Th Perzentil der bereitgestellten Daten.

PERCENTILE_DISC()

Mit der Funktion PERCENTILE_DISC() können wir den Perzentilwert als diskreten Wert direkt aus dem Datensatz berechnen.

Die Funktion gibt einen Wert zurück, der einem tatsächlichen Datenpunkt entspricht.

Die Funktionssyntax lautet wie folgt (PostgreSQL):

PERCENTILE_DISC(Perzentil) INNERHALB GRUPPE ( BEFEHL BY Spaltenname) OVER ();

Eine Beispielausgabe sieht wie folgt aus:

WÄHLEN

PERCENTILE_DISC( 0,25 ) INNERHALB GRUPPE ( BEFEHL DURCH Preis) ÜBER () AS Perzentil_25

AUS

Produkte;

Dies sollte die 25 berechnen Th Perzentil der Daten.

Abschluss

In diesem Tutorial wurde erläutert, wie Sie die verschiedenen Funktionen zur Berechnung der Perzentile in SQL-Datenbanken verwenden.