εκατοστημόριο SQL

Ekatostemorio Sql



Ποιες είναι οι δύο κοινές λέξεις που συνδέονται τόσο στενά που θα νομίζατε ότι είναι ίδιες; Για εμάς τους προγραμματιστές βάσεων δεδομένων, θα ήταν η βάση δεδομένων SQL και τα στατιστικά στοιχεία.

Ένας από τους συνηθισμένους στατιστικούς υπολογισμούς που προκύπτουν ακόμη και στη διαχείριση βάσεων δεδομένων είναι το εκατοστημόριο.

Το εκατοστημόριο είναι ένα στατιστικό μέτρο που μας επιτρέπει να διαιρέσουμε ένα σύνολο δεδομένων σε ίσα μέρη τμημάτων. Ο ρόλος των εκατοστημορίων είναι να παρέχουν μια εικόνα για τη διανομή δεδομένων που είναι ο τρόπος με τον οποίο κατανοούμε πώς κατανέμονται οι τιμές.







Σε αυτό το σεμινάριο, θα μάθουμε πώς μπορούμε να υπολογίσουμε τα εκατοστημόρια στην SQL για να χωρίσουμε τα δεδομένα σε διάφορα τμήματα.



Δείγμα πίνακα

Ας ξεκινήσουμε με τη δημιουργία ενός βασικού πίνακα που περιέχει ένα δείγμα δεδομένων για σκοπούς επίδειξης. Αυτό μας βοηθά να δείξουμε πώς συμπεριφέρονται οι διάφορες μέθοδοι υπολογισμού των εκατοστημόνων και το αποτέλεσμα που προκύπτει.



Ας δημιουργήσουμε έναν πίνακα που ονομάζεται 'προϊόντα' που περιέχει τις πληροφορίες του παντοπωλείου. Η ρήτρα «δημιουργία πίνακα» είναι η εξής:





ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΩΝ προϊόντων (

product_id INT PRIMARY KEY AUTO_INCREMENT,

όνομα_προϊόντος VARCHAR( 255 ),

κατηγορία VARCHAR( 255 ),

τιμή ΔΕΚΑΔΙΚΟ( 10 , 2 ),

ποσότητα INT,

expiration_date DATE,

barcode BIGINT

)

Μόλις δημιουργήσουμε τον πίνακα, μπορούμε να προχωρήσουμε και να προσθέσουμε τα δείγματα δεδομένων στον πίνακα. Μπορούμε να χρησιμοποιήσουμε τις ακόλουθες δηλώσεις «εισαγωγής»:

εισάγετε
σε
προϊόντα (όνομα_προϊόντος,
κατηγορία,
τιμή,
ποσότητα,
ημερομηνία λήξης,
barcode)
αξίες ( 'Καπέλο σεφ 25 εκ.' ,
'φούρνος' ,
24,67 ,
57 ,
'09-09-2023' ,
2854509564204 )

εισάγετε
σε
προϊόντα (όνομα_προϊόντος,
κατηγορία,
τιμή,
ποσότητα,
ημερομηνία λήξης,
barcode)
αξίες ( 'Αυγά ορτυκιού - Κονσερβοποιημένα' ,
'ντουλάπι' ,
17,99 ,
67 ,
'29-09-2023' ,
1708039594250 )

εισάγετε
σε
προϊόντα (όνομα_προϊόντος,
κατηγορία,
τιμή,
ποσότητα,
ημερομηνία λήξης,
barcode)
αξίες ( 'Καφές - Αυγό Καπουτσίνο' ,
'φούρνος' ,
92,53 ,
10 ,
'22-09-2023' ,
8704051853058 )

εισάγετε
σε
προϊόντα (όνομα_προϊόντος,
κατηγορία,
τιμή,
ποσότητα,
ημερομηνία λήξης,
barcode)
αξίες ( 'Αχλάδι - Φραγκόσυκο' ,
'φούρνος' ,
65,29 ,
48 ,
'23-08-2023' ,
5174927442238 )

εισάγετε
σε
προϊόντα (όνομα_προϊόντος,
κατηγορία,
τιμή,
ποσότητα,
ημερομηνία λήξης,
barcode)
αξίες ( 'Ζυμαρικά - Μαλλιά Αγγέλου' ,
'ντουλάπι' ,
48,38 ,
59 ,
'05-08-2023' ,
8008123704782 )

εισάγετε
σε
προϊόντα (όνομα_προϊόντος,
κατηγορία,
τιμή,
ποσότητα,
ημερομηνία λήξης,
barcode)
αξίες ( «Κρασί - Prosecco Valdobiaddene» ,
'παράγω' ,
44,18 ,
3 ,
'2023-03-13' ,
6470981735653 )

Στο τέλος, θα πρέπει να έχετε έναν πίνακα ως εξής:



εκατοστημόριο SQL

Όπως μπορείτε να μαντέψετε, ο τρόπος υπολογισμού του εκατοστημόριου μπορεί να διαφέρει ανάλογα με τη μηχανή βάσης δεδομένων. Ωστόσο, η πιο κοινή μέθοδος είναι η χρήση των συναρτήσεων PERCENTILE_DISC() και PERCENTILE_CONT().

Αυτές οι συναρτήσεις αποτελούν μέρος της προδιαγραφής Standard SQL (2003). Ως εκ τούτου, είναι βέβαιο ότι θα υποστηρίζεται από PostgreSQL και Oracle.

PERCENTILE_CONT()

Ας ξεκινήσουμε με τη συνάρτηση PERCENTILE_CONT(). Αυτή η συνάρτηση μας επιτρέπει να υπολογίσουμε τις εκατοστιαίες τιμές ως κλάσμα του συνόλου δεδομένων.

Η συνάρτηση επιστρέφει παρεμβαλλόμενες τιμές που μπορεί να μην είναι ακριβείς στο συγκεκριμένο σημείο δεδομένων στο σύνολο δεδομένων σας.

Η σύνταξη της συνάρτησης είναι η εξής:

PERCENTILE_CONT(εκατοστη εκατοστημόριο) ΕΝΤΟΣ ΟΜΑΔΑ ( ΣΕΙΡΑ BY column_name) OVER ();

Η συνάρτηση δέχεται τις ακόλουθες παραμέτρους:

  • Ποσοστό – Καθορίζει την επιθυμητή τιμή εκατοστημόριου (0,0 έως 1,0).
  • στήλη_όνομα – Δηλώνει τη στήλη για την οποία θέλουμε να υπολογίσουμε το εκατοστημόριο.
  • OVER () – Ρυθμίζει τη συνάρτηση παραθύρου για να καθορίσει ολόκληρο το σύνολο δεδομένων.

Ένα παράδειγμα σχετικά με τον τρόπο χρήσης αυτής της συνάρτησης είναι το ακόλουθο:

ΕΠΙΛΕΓΩ

PERCENTILE_CONT( 0,5 ) ΣΤΑ ΠΛΑΙΣΙΑ ΟΜΑΔΑ ( ΣΕΙΡΑ ΚΑΤΑ τιμή) ΠΑΝΩ () ΩΣ διάμεσος

ΑΠΟ

προϊόντα;

Σημείωση: Το συγκεκριμένο ερώτημα λειτουργεί μόνο στην PostgreSQL, καθώς η MySQL δεν υποστηρίζει τη χρήση του WITHIN GROUP.

Αυτό υπολογίζει το 50 ου εκατοστημόριο των παρεχόμενων δεδομένων.

PERCENTILE_DISC()

Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση PERCENTILE_DISC() για να υπολογίσουμε την τιμή εκατοστημόριου ως διακριτή τιμή απευθείας από το σύνολο δεδομένων.

Η συνάρτηση επιστρέφει μια τιμή που αντιστοιχεί σε ένα πραγματικό σημείο δεδομένων.

Η σύνταξη της συνάρτησης είναι η εξής (PostgreSQL):

PERCENTILE_DISC(εκατοστη εκατοστημόριο) ΕΝΤΟΣ ΟΜΑΔΑ ( ΣΕΙΡΑ BY column_name) OVER ();

Ένα παράδειγμα εξόδου είναι το εξής:

ΕΠΙΛΕΓΩ

PERCENTILE_DISC( 0,25 ) ΣΤΑ ΠΛΑΙΣΙΑ ΟΜΑΔΑ ( ΣΕΙΡΑ ΚΑΤΑ τιμή) ΠΑΝΩ () AS εκατοστημόριο_25

ΑΠΟ

προϊόντα;

Αυτό θα πρέπει να υπολογίσει το 25 ου εκατοστημόριο των δεδομένων.

συμπέρασμα

Αυτό το σεμινάριο κάλυψε τον τρόπο χρήσης των διαφόρων συναρτήσεων για τον υπολογισμό των εκατοστημόνων σε βάσεις δεδομένων SQL.