Αθροιστικό άθροισμα SQL

Athroistiko Athroisma Sql



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

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







Δειγμα δεδομένων

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



Ξεκινήστε δημιουργώντας έναν βασικό πίνακα που αποθηκεύει τις πληροφορίες του προϊόντος.



CREATE TABLE προϊόντα (
product_id INT PRIMARY KEY,
όνομα_προϊόντος VARCHAR ( 255 ) ,
τιμή ΔΕΚΑΔΙΚΗ ( 10 , 2 )
) ;





Αυτό θα πρέπει να δημιουργήσει έναν νέο πίνακα που ονομάζεται 'προϊόντα' που αποθηκεύει το αναγνωριστικό προϊόντος, το όνομα προϊόντος και την τιμή κάθε προϊόντος.

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



ΕΙΣΑΓΩΓΗ ΣΕ προϊόντα ( αναγνωριστικό_προϊόντος, όνομα_προϊόντος, τιμή )
ΑΞΙΕΣ
( 1 , 'Κώδικας Visual Studio' , 10.00 ) ,
( 2 , 'Υψηλό κείμενο' , 80.00 ) ,
( 3 , 'PyCharm Professional' , 199.00 ) ,
( 4 , 'Eclipse IDE' , 30.00 ) ,
( 5 , 'IntelliJ IDEA Ultimate' , 699,00 ) ,
( 6 , 'GitHub Desktop' , 20.00 ) ,
( 7 , 'Λογισμικό αναμονής' , 10.00 ) ,
( 8 , 'Xcode' , 660,00 ) ,
( 9 , 'NetBeans' , 0,00 ) ,
( 10 , 'Ατομο' , 60.00 ) ;

ΣΗΜΕΙΩΣΗ: Τα δεδομένα που δίνονται είναι εντελώς φανταστικά. Δεν αντιπροσωπεύει την πραγματική τιμολόγηση κανενός από τα αναφερόμενα είδη.

Ο πίνακας που προκύπτει έχει ως εξής:

Αθροιστικό άθροισμα SQL (Αυτοσυμμετοχή)

Μία από τις τεχνικές που μπορούμε να χρησιμοποιήσουμε για να εκτελέσουμε ένα αθροιστικό άθροισμα σε μια δεδομένη στήλη είναι η χρήση της μεθόδου self-join. Ένα πλεονέκτημα αυτής της μεθόδου είναι ότι λειτουργεί σε όλες σχεδόν τις βάσεις δεδομένων SQL, ακόμη και σε εκείνες που δεν υποστηρίζουν τις συναρτήσεις Window.

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

ΕΠΙΛΕΓΩ
p1.product_id,
p1.product_name,
p1.τιμή,
ΑΘΡΟΙΣΜΑ ( σελ2.τιμή ) AS αθροιστικό_άθροισμα
ΑΠΟ
προϊόντα p1
ΣΥΜΜΕΤΟΧΗ
προϊόντα σελ2
ΕΠΙ
p1.product_id > = p2.product_id
ΟΜΑΔΑ ΑΠΟ
p1.product_id,
p1.product_name,
σ1.τιμή
ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ
p1.product_id;

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

Στο συγκεκριμένο παράδειγμα ερωτήματος, ξεκινάμε δημιουργώντας δύο ψευδώνυμα - 'p1' και 'p2' - για τον πίνακα 'προϊόντα' που μας δίνει τη δυνατότητα να εκτελέσουμε μια αυτοσύνδεση.

Στη συνέχεια προχωράμε στην ένωση των 'p1' και 'p2' με την προϋπόθεση ότι το 'product_id' του 'p1' είναι μεγαλύτερο ή ίσο με το 'product_id' του 'p2'.

Στο επόμενο βήμα, καλούμε τη συνάρτηση sum() η οποία βασικά υπολογίζει το αθροιστικό άθροισμα των τιμών για κάθε σειρά.

Τέλος, ομαδοποιούμε τα αποτελέσματα χρησιμοποιώντας τα 'product_id', 'product_name' και 'price' και παραγγέλνουμε τα αποτελέσματα.

Μετά από αυτή τη λειτουργία, θα πρέπει να έχουμε ένα αθροιστικό άθροισμα για κάθε εγγραφή, όπως φαίνεται στον πίνακα που προκύπτει, όπως φαίνεται παρακάτω:

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

Αθροιστικό άθροισμα SQL (Συναρτήσεις παραθύρου)

Ένας πιο αποτελεσματικός και πρακτικός τρόπος υπολογισμού του αθροιστικού αθροίσματος σε SQL είναι η αξιοποίηση των συναρτήσεων παραθύρου όποτε υποστηρίζεται.

Εάν έχετε μια βάση δεδομένων όπως ο SQL Server, η PostgreSQL ή η MySQL έκδοση 8.0 και νεότερη, αυτή είναι η πιο χρήσιμη και συνιστώμενη μέθοδος για τον προσδιορισμό του αθροιστικού αθροίσματος μιας δεδομένης στήλης.

Ρίξτε μια ματιά στο παράδειγμα όπως φαίνεται στα παρακάτω:

ΕΠΙΛΕΓΩ
αναγνωριστικό_προϊόντος,
Ονομασία προϊόντος,
τιμή,
ΑΘΡΟΙΣΜΑ ( τιμή ) ΠΑΝΩ ΑΠΟ ( ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ product_id ) AS αθροιστικό_άθροισμα
ΑΠΟ
προϊόντα;

Σε αυτήν την περίπτωση, ξεκινάμε επιλέγοντας τις στήλες «product_id», «product_name» και «price» από τον πίνακα «products».

Στη συνέχεια χρησιμοποιούμε τη συνάρτηση SUM() ως συνάρτηση παραθύρου χρησιμοποιώντας τον όρο OVER.

Στην πρόταση OVER, καθορίζουμε την ρήτρα ORDER BY που ορίζει τη σειρά με την οποία υπολογίζεται το σωρευτικό άθροισμα.

Αυτό θα πρέπει να επιστρέψει μια παρόμοια έξοδο όπως φαίνεται στο παρακάτω:

Θα παρατηρήσετε ότι η χρήση των συναρτήσεων παραθύρου είναι πιο συνεκτική, αποτελεσματική και ευανάγνωστη σε σύγκριση με τη χρήση αυτο-συνδέσεων.

συμπέρασμα

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