Τρόπος χρήσης της ρήτρας HAVING της MySQL όπου το άθροισμα είναι μεγαλύτερο από το όριο

Tropos Chreses Tes Retras Having Tes Mysql Opou To Athroisma Einai Megalytero Apo To Orio



Όταν εργάζεστε με τη βάση δεδομένων MySQL, θα έχετε συχνά περιπτώσεις όπου θέλετε να φιλτράρετε τις τιμές. Αν και μπορείτε να χρησιμοποιήσετε την ρήτρα WHERE, δεν λειτουργεί πάντα για όλες τις περιπτώσεις. Ο όρος HAVING χρησιμοποιείται όταν θέλετε να εκτελέσετε ένα ερώτημα φίλτρου χρησιμοποιώντας μια αθροιστική συνάρτηση και να εφαρμόσετε τις ομαδοποιήσεις.

Ο όρος HAVING βασίζεται στον όρο GROUP BY στο φίλτρο του και εκτελεί το ερώτημα με βάση την παρεχόμενη συνθήκη. Περιορίζει το φίλτρο με βάση τη συνθήκη και επιστρέφει μόνο τις επιλεγμένες ομάδες εάν πληρούν την συνθήκη. Έχουμε παραδείγματα χρήσης της ρήτρας HAVING της MySQL όπου το άθροισμα υπερβαίνει το όριο. Με αυτόν τον τρόπο, θα καταλάβετε πώς να το χρησιμοποιήσετε στο τέλος της σημερινής ανάρτησης.







Τρόπος χρήσης της ρήτρας HAVING της MySQL όπου το άθροισμα είναι μεγαλύτερο από το όριο

Εφαρμόζετε τον όρο HAVING της MySQL με τον όρο GROUP BY. Η σύνταξή του είναι η εξής:



SELECT έκφραση1, .. express_n, aggregate_func (έκφραση) FROM table_name GROUP BY BY HAVING ;

Μπορείτε να χρησιμοποιήσετε τις διαφορετικές συναρτήσεις συγκεντρωτικών συμπεριλαμβανομένων των SUM(), COUNT(), MIN(), MAX() και AVG(). Σημειώστε ότι οποιαδήποτε έκφραση δεν χρησιμοποιείται με τη συνάρτηση συγκεντρωτικών στοιχείων πρέπει να αναφέρεται με τον όρο GROUP BY.



Όσον αφορά τη συνθήκη, εφαρμόζεται στα συγκεντρωτικά αποτελέσματα όπου καθορίζετε το όριο που θέλετε να ελέγξετε με τη συνθήκη. Για παράδειγμα, μπορείτε να εφαρμόσετε τη συνάρτηση SUM() και να επαληθεύσετε εάν η έκφραση πληροί το όριο του 10. Θα καταλάβουμε περισσότερα σχετικά με αυτήν στα παραδείγματα που παρέχονται.





Για να κατανοήσουμε πώς λειτουργεί η ρήτρα HAVING, ας δημιουργήσουμε ένα δείγμα βάσης δεδομένων με το οποίο θα εργαστούμε. Ονομάζουμε τη βάση δεδομένων μας ως 'εγγραφή'.



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

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

Εισάγουμε τις τιμές στον πίνακα μας. Έχουμε διαφορετικούς εργαζόμενους που εργάζονται σε διαφορετικές ώρες και ημέρες. Χρησιμοποιώντας αυτά τα δεδομένα, μπορούμε να εφαρμόσουμε την ρήτρα HAVING όπου το άθροισμα υπερβαίνει το όριο.

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

Εάν έχουμε το κατώφλι μας για τις συνολικές ώρες ως 7, εκτελούμε την εντολή μας ως εξής:

ΕΠΙΛΕΞΤΕ όνομα, SUM(ώρες) AS total_hours_per_person FROM εργαζόμενοι GROUP BY name HAVING sum(hours) > 7;

Εκτελώντας την εντολή, παίρνουμε μια έξοδο που περιέχει δύο σειρές, αφού μόνο δύο εργαζόμενοι ξεπέρασαν το όριο που καθορίζεται στον όρο HAVING.

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

Η εντολή μας είναι η εξής:

ΕΠΙΛΕΞΤΕ τμήμα, SUM(ώρες) AS total_hours_per_department ΑΠΟ εργαζομένους GROUP BY BY τμήμα ΕΧΟΥΝ άθροισμα(ώρες) > 7;

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

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

Η εντολή είναι η εξής:

ΕΠΙΛΟΓΗ ημερομηνίας εργασίας, SUM(ώρες) AS υψηλότερες_ώρες_εργασίας ΑΠΟ εργαζομένους ΟΜΑΔΑ ΑΝΑ ημερομηνία εργασίας ΕΧΟΝΤΑΣ άθροισμα(ώρες) > 10;

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

συμπέρασμα

Ο όρος MySQL HAVING χρησιμοποιείται όταν θέλετε να εκτελέσετε ένα ερώτημα φίλτρου χρησιμοποιώντας μια συνάρτηση συγκεντρωτικών στοιχείων. Συνδυάζεται με τον όρο GROUP BY για να εκτελέσει ένα πιο συγκεκριμένο ερώτημα. Αυτή η ανάρτηση περιγράφει τα πάντα σχετικά με την ρήτρα HAVING της MySQL όπου το άθροισμα είναι μεγαλύτερο από το όριο. Με τα παραδείγματα που παρέχονται, καταλαβαίνετε τώρα πώς να εργαστείτε με την ρήτρα HAVING της MySQL.