MySQL Count Recatching Records With COUNT

Mysql Count Matching Records With Count



Ο πλεονασμός δεδομένων εμφανίζεται για πολλούς λόγους. Αρκετές από τις περίπλοκες εργασίες που πρέπει να αντιμετωπίσετε ενώ εργάζεστε με συστήματα βάσεων δεδομένων προσπαθείτε να ανακαλύψετε διπλές τιμές. Για το σκοπό αυτό, θα χρησιμοποιούμε τη μέθοδο συγκεντρωτικής COUNT (). Η μέθοδος COUNT () επιστρέφει το άθροισμα των γραμμών που βρίσκονται σε έναν συγκεκριμένο πίνακα. Η συνάρτηση COUNT () σας επιτρέπει να αθροίσετε όλες τις γραμμές ή μόνο γραμμές που ταιριάζουν με την καθορισμένη συνθήκη. Σε αυτόν τον οδηγό, θα μάθετε πώς να προσδιορίζετε διπλές τιμές για μία ή ίσως περισσότερες στήλες MySQL χρησιμοποιώντας COUNT (). Η μέθοδος COUNT () έχει τους ακόλουθους τρεις τύπους:

  • ΜΕΤΡΩ(*)
  • COUNT (έκφραση)
  • COUNT (ΔΙΑΚΡΙΣΗ έκφραση)

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









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



>> ΕΠΙΛΕΓΩ * ΑΠΟ δεδομένα .Κοινωνικός?





MySQL COUNT (*)

Η μέθοδος COUNT (*) χρησιμοποιείται για να μετρήσει τον αριθμό των γραμμών που βρίσκονται στον πίνακα ή να μετρήσει τον αριθμό των σειρών σύμφωνα με τη δεδομένη συνθήκη. Για να ελέγξετε τον συνολικό αριθμό γραμμών σε έναν πίνακα, δοκιμάστε το «κοινωνικό» το παρακάτω ερώτημα. Έχουμε συνολικά 15 σειρές στον πίνακα σύμφωνα με το αποτέλεσμα.

>> ΕΠΙΛΕΓΩ ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός?



Ρίξτε μια ματιά στη μέθοδο COUNT (*) ενώ καθορίζετε ορισμένες συνθήκες. Πρέπει να λάβουμε τον αριθμό των γραμμών όπου το όνομα χρήστη είναι το ίδιο με το 'Mustafa'. Μπορείτε να δείτε ότι έχουμε μόνο 4 εγγραφές για το συγκεκριμένο όνομα.

>> ΕΠΙΛΕΓΩ ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΠΟΥ Χρήστης ='Μουσταφά'?

Για να ανακτήσετε το συνολικό άθροισμα των σειρών όπου ο ιστότοπος των χρηστών είναι «Instagram», δοκιμάστε το παρακάτω ερώτημα. Ο πίνακας «κοινωνικός» έχει μόνο 4 εγγραφές για τον ιστότοπο «Instagram».

>> ΕΠΙΛΕΓΩ ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΠΟΥ Δικτυακός τόπος='Ινσταγκραμ'?

Η ανάκτηση του συνολικού αριθμού σειρών όπου η «Ηλικία» είναι μεγαλύτερη από 18 έχει ως εξής:

>> ΕΠΙΛΕΓΩ ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΠΟΥ Ηλικία>> 18?

Ας πάρουμε τα δεδομένα των στηλών «Χρήστης» και «Ιστότοπος» από έναν πίνακα, όπου το όνομα χρήστη ξεκινά με το αλφάβητο «Μ». Δοκιμάστε τις παρακάτω οδηγίες στο κέλυφος.

>> ΕΠΙΛΕΓΩ Χρήστης ,Δικτυακός τόπος ΑΠΟ δεδομένα .Κοινωνικός ΟΠΟΥ Χρήστης σαν%'?

MySQL COUNT (έκφραση)

Στο MySQL, η μέθοδος COUNT (έκφραση) χρησιμοποιείται μόνο όταν θέλετε να μετρήσετε μη μηδενικές τιμές της στήλης 'έκφραση'. Η «έκφραση» θα είναι το όνομα οποιασδήποτε στήλης. Ας πάρουμε ένα απλό παράδειγμα. Έχουμε μετρήσει μόνο τις μη μηδενικές τιμές μιας στήλης 'Ιστότοπος', η οποία σχετίζεται με τη στήλη 'Ηλικία' που έχει μια τιμή που ισούται με '25'. Βλέπω! Έχουμε μόνο 4 μη μηδενικές εγγραφές για τους χρήστες ηλικίας «25», οι οποίοι χρησιμοποιούν ιστότοπους.

>> ΕΠΙΛΕΓΩ ΜΕΤΡΩ (Δικτυακός τόπος) ΑΠΟ δεδομένα .Κοινωνικός ΟΠΟΥ Ηλικία= 25?

MySQL COUNT (έκφραση DISTNCT)

Στο MySQL, η μέθοδος COUNT (ΔΙΑΚΡΙΣΗ έκφραση) χρησιμοποιείται για να αθροίσει μη μηδενικές τιμές και ξεχωριστές τιμές της στήλης «έκφραση». Για να μετρήσουμε έναν ξεχωριστό αριθμό μη μηδενικών τιμών στη στήλη «Ηλικία», χρησιμοποιήσαμε το παρακάτω ερώτημα. Θα βρείτε 6 μη μηδενικές και διακριτές εγγραφές της στήλης «Ηλικία» από τον πίνακα «κοινωνικά». Αυτό σημαίνει ότι έχουμε συνολικά 6 άτομα με διαφορετικές ηλικίες.

>> ΕΠΙΛΕΓΩ ΜΕΤΡΩ ( ΔΙΑΚΡΙΤΗ Ηλικία) ΑΠΟ δεδομένα .Κοινωνικός?

MySQL COUNT (IF (έκφραση))

Για μεγαλύτερη έμφαση, θα πρέπει να συγχωνεύσετε COUNT () με συναρτήσεις ελέγχου ροής. Για αρχή, για ένα μέρος της έκφρασης που χρησιμοποιείται στη μέθοδο COUNT (), μπορείτε να χρησιμοποιήσετε τη συνάρτηση IF (). Μπορεί να είναι πολύ χρήσιμο να το κάνετε αυτό για να παρέχετε μια γρήγορη ανάλυση των πληροφοριών μέσα σε μια βάση δεδομένων. Θα μετρήσουμε τον αριθμό των σειρών με διαφορετικές ηλικιακές συνθήκες και θα τις χωρίσουμε σε τρεις διαφορετικές στήλες, οι οποίες μπορούν να ειπωθούν ως κατηγορίες. Πρώτον, το COUNT (IF) θα μετράει τις γραμμές που έχουν ηλικία κάτω των 20 ετών και θα το αποθηκεύει σε μια νέα στήλη που ονομάζεται «Teenage». Το δεύτερο COUNT (IF) μετρά τις γραμμές ηλικίας μεταξύ 20 και 30 ετών, ενώ το αποθηκεύει σε μια στήλη 'Young'. Τρίτον, η τελευταία μετρά τις σειρές που έχουν ηλικία μεγαλύτερη από 30 και αποθηκεύονται σε μια στήλη «ureριμο». Έχουμε 5 εφήβους, 9 νέους και μόνο 1 ώριμο άτομο στο δίσκο μας.

>> ΕΠΙΛΕΓΩ ΜΕΤΡΩ ( ΑΝ (Ηλικία< είκοσι,1, ΜΗΔΕΝΙΚΟ ))«Έφηβος», ΜΕΤΡΩ ( ΑΝ (Ηλικία ΜΕΤΑΞΥ είκοσι ΚΑΙ 30,1, ΜΗΔΕΝΙΚΟ ))'Νέος', ΜΕΤΡΩ ( ΑΝ (Ηλικία>> 30,1, ΜΗΔΕΝΙΚΟ ))'Ωριμος' ΑΠΟ δεδομένα .Κοινωνικός?

MySQL COUNT (*) με GROUP BY Clause

Η δήλωση GROUP BY είναι μια εντολή SQL που χρησιμοποιείται για γραμμές ομάδας με τις ίδιες τιμές. Επιστρέφει τον συνολικό αριθμό τιμών που βρίσκονται σε κάθε ομάδα. Για παράδειγμα, εάν θέλετε να ελέγξετε τον αριθμό κάθε χρήστη ξεχωριστά, πρέπει να ορίσετε τη στήλη 'Χρήστης' με τη ρήτρα GROUP BY ενώ μετράτε εγγραφές για κάθε χρήστη με COUNT (*).

>> ΕΠΙΛΕΓΩ Χρήστης , ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΜΑΔΑ ΑΠΟ Χρήστης ?

Μπορείτε είτε να επιλέξετε περισσότερες από δύο στήλες κατά την εκτέλεση της καταμέτρησης των σειρών μαζί με τη ρήτρα GROUP BY, ως εξής.

>> ΕΠΙΛΕΓΩ Χρήστης ,Ηλικία,Δικτυακός τόπος, ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΜΑΔΑ ΑΠΟ Δικτυακός τόπος?

Εάν θέλουμε να μετράμε γραμμές ενώ χρησιμοποιούμε τη ρήτρα WHERE με ορισμένες προϋποθέσεις μαζί με το GROUP BY και COUNT (*), μπορείτε επίσης να το κάνετε αυτό. Το παρακάτω ερώτημα θα ανακτήσει και θα μετρήσει τις εγγραφές των στηλών: 'Χρήστης', 'Ιστότοπος' και 'Ηλικία' όπου η αξία του ιστότοπου είναι μόνο 'Instagram' και 'Snapchat'. Μπορείτε να δείτε ότι έχουμε μόνο 1 εγγραφή και για τους δύο ιστότοπους για διαφορετικούς χρήστες.

>> ΕΠΙΛΕΓΩ Χρήστης ,Δικτυακός τόπος,Ηλικία, ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΠΟΥ Δικτυακός τόπος='Ινσταγκραμ' Ή Δικτυακός τόπος=«Snapchat» ΟΜΑΔΑ ΑΠΟ Δικτυακός τόπος,Ηλικία?

MySQL COUNT (*) με GROUP BY και ORDER BY Clause

Ας δοκιμάσουμε τις ρήτρες GROUP BY και ORDER BY από κοινού με τη μέθοδο COUNT (). Ας πάρουμε και μετρήσουμε τις σειρές του πίνακα «κοινωνικά» ενώ τακτοποιούμε τα δεδομένα σε φθίνουσα σειρά χρησιμοποιώντας αυτό το ερώτημα:

>> ΕΠΙΛΕΓΩ Χρήστης ,Δικτυακός τόπος,Ηλικία, ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΜΑΔΑ ΑΠΟ Ηλικία ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ ΜΕΤΡΩ (*) DESC ?

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

>> ΕΠΙΛΕΓΩ Χρήστης ,Ηλικία, ΜΕΤΡΩ (*) ΑΠΟ δεδομένα .Κοινωνικός ΟΜΑΔΑ ΑΠΟ Ηλικία ΕΧΟΝΤΑΣ ΜΕΤΡΩ (*) >> 2 ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ ΜΕΤΡΩ (*) ASC ?

συμπέρασμα

Έχουμε περάσει από όλες τις πιθανές μεθόδους για να μετρήσουμε τις αντίστοιχες ή διπλές εγγραφές χρησιμοποιώντας τη μέθοδο COUNT () με διαφορετικές άλλες ρήτρες.