mysql count count distinct with examples
πώς να διαβάσετε αρχεία .dat
Μάθετε για τις χρήσεις διαφόρων μορφών της συνάρτησης MySQL COUNT με παραδείγματα:
Το COUNT είναι μια απλή συνολική συνάρτηση, αλλά πολύ αποτελεσματική και ευρέως χρησιμοποιούμενη. Με πολύ απλές λέξεις, χρησιμοποιείται για να COUNT τον αριθμό των σειρών σε σχέση με ένα δεδομένο SELECT ερώτημα και κριτήρια.
Αυτό το σεμινάριο θα εξηγήσει τη σύνταξη και τη χρήση απλών COUNT, COUNT με συνθήκες, COUNT με DISTINCT, COUNT με GROUP BY κ.λπ.
Τι θα μάθετε:
Διάφοροι τύποι λογισμικού MySQL
Τύπος | Περιγραφή | Σύνταξη |
---|---|---|
ΜΕΤΡΩ(*) | Η συνάρτηση COUNT (*) επιστρέφει το αριθ. των σειρών που ανακτήθηκαν από τη δήλωση SELECT, συμπεριλαμβανομένων σειρών που περιέχουν τιμές NULL και Duplicate | SELECT COUNT (*) ΑΠΟ {tableName} |
COUNT (Έκφραση) | COUNT (έκφραση) θα μετρήσει την τιμή όπου η έκφραση δεν είναι μηδενική. Η έκφραση μπορεί να είναι κάτι απλό, όπως ένα όνομα στήλης ή μια σύνθετη έκφραση όπως η συνάρτηση IF. | SELECT COUNT (Έκφραση) από {tableName} |
COUNT (ΑΠΟΣΤΑΣΗ έκφραση) | COUNT (έκφραση DISTINCT) - Η λέξη-κλειδί DISTINCT θα είχε ως αποτέλεσμα τη μέτρηση μόνο μοναδικών μη μηδενικών τιμών έναντι της έκφρασης. Για παράδειγμα - COUNT (DISTINCT customerName) - θα μετρήσει μόνο σειρές που έχουν διαφορετικές τιμές για το όνομα πελάτη | SELECT COUNT (έκφραση DISTINCT) από {tableName} |
MySQL COUNT Παραδείγματα
Δεδομένα δοκιμής
Θα χρησιμοποιούσαμε τους παρακάτω πίνακες και δεδομένα για τα παραδείγματα για τη συνάρτηση MySQL COUNT.
Πίνακες:
# 1) Product_Details
Αποθηκεύει λεπτομέρειες για διάφορα προϊόντα σε ένα κατάστημα
- product_id - INT
- product_name - VARCHAR
- τιμή - DECIMAL
- category_id - INT (ΞΕΝΟ ΚΛΕΙΔΙ - αναγνωριστικό από τον πίνακα Category_Details)
# 2) Κατηγορία_ Λεπτομέρειες:
- Category_id: INT
- category_name: VARCHAR
Ας δημιουργήσουμε τους πίνακες και εισάγουμε εικονικά δεδομένα χρησιμοποιώντας τα παρακάτω ερωτήματα:
CREATE TABLE `product_details` ( `product_id` int NOT NULL, `product_name` varchar(100), `price` decimal(5,2), `category_id` int, FOREIGN KEY (category_id) REFERENCES category_details(category_id), PRIMARY KEY(product_id) ) CREATE TABLE `category_details` ( `category_id` int NOT NULL, `category_name` varchar(100), PRIMARY KEY(category_id) ) INSERT INTO `category_details` (`category_id`,`category_name`) VALUES (1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS'); INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4, 'Apple IPhone', 500,5), (5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans- Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);
Ανατρέξτε στις εικόνες των πινάκων με τα δεδομένα δοκιμής όπως δημιουργήθηκαν παραπάνω.
Product_Details Πίνακας
Category_Details Πίνακας
Απλό COUNT
Σε αυτήν την ενότητα, θα δούμε τη συνάρτηση COUNT με τον πιο απλοϊκό τρόπο.
Θα χρησιμοποιήσουμε COUNT για να επιστρέψουμε τον αριθμό σειρών χωρίς ελέγχους NULL ή DISTINCT.
SELECT COUNT(*) FROM product_details;
Παραγωγή:
ΜΕΤΡΩ(*) |
---|
έντεκα |
Με το παραπάνω ερώτημα, θα λάβουμε απλώς τον αριθμό των σειρών που επιστρέφονται έναντι της επιλεγμένης δήλωσης.
COUNT με όρους
Τώρα θα χρησιμοποιήσουμε τη συνάρτηση COUNT με συνθήκες ή τιμές στηλών.
Παράδειγμα: Ας υποθέσουμε ότι θέλουμε να μετρήσουμε το όχι. σειρών όπου δεν υπάρχουν μη μηδενικές τιμές για ονόματα προϊόντων.
Μπορούμε να προσθέσουμε το όνομα_προϊόντος (ή οποιοδήποτε δεδομένο όνομα στήλης) ως την έκφραση στη συνάρτηση COUNT, η οποία στη συνέχεια θα είχε ως αποτέλεσμα τον αριθμό των σειρών που έχουν μη NULL σειρές προϊόντος_ονομάτων.
SELECT COUNT(product_name) FROM product_details;
Σε αυτήν την περίπτωση, η έξοδος θα είναι 11 (καθώς όλα τα δεδομένα δοκιμής έχουν ήδη τιμές για τη στήλη product_name)
Παραγωγή:
COUNT (όνομα_προϊόντος) |
---|
έντεκα |
Ας προσθέσουμε μια νέα σειρά, με τιμή NULL για το product_name.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Το παραπάνω COUNT ερώτημα θα επιστρέψει τον αριθμό όλων των σειρών που έχουν NON NULL product_name.
Δεδομένου ότι εισαγάγαμε μια σειρά με NULL product_name, αυτό δεν θα επιστραφεί στα αποτελέσματα. Έτσι, η έξοδος θα ήταν ακόμα 11 σειρές.
Παραγωγή:
COUNT (όνομα_προϊόντος) |
---|
έντεκα |
COUNT με DISTINCT
Στα προηγούμενα παραδείγματα, χρησιμοποιήσαμε τη συνάρτηση COUNT με μια έκφραση. Μπορούμε επίσης να συνδυάσουμε την έκφραση με μια εντολή DISTINCT για να λάβουμε όλες τις τιμές NON NULL, οι οποίες είναι ΜΟΝΑΔΙΚΕΣ.
Ας προσπαθήσουμε να λάβουμε το DISTINCT category_id από τον πίνακα product_details.
SELECT COUNT(DISTINCT category_id) from product_details;
Παραγωγή:
COUNT (DISTINCT κατηγορία_id) |
---|
4 |
Όπως μπορείτε να δείτε παραπάνω - η έξοδος είναι 4, που αντιπροσωπεύει το συνολικό αριθ. της κατηγορίας_id είναι στον πίνακα product_details.
COUNT με GROUP BY
Ας δούμε ένα παράδειγμα όπου θέλουμε να χρησιμοποιήσουμε COUNT μαζί με GROUP BY. Αυτός είναι ένας σημαντικός συνδυασμός όπου μπορούμε να πάρουμε ένα COUNT σε μια ομαδοποιημένη στήλη και να αναλύσουμε δεδομένα ανάλογα με τις διαφορετικές τιμές μιας στοχευμένης ομαδοποιημένης στήλης.
Για παράδειγμα: Βρείτε το όχι. προϊόντων έναντι κάθε κατηγορίας από τον πίνακα product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
κατηγορία_id | ΜΕΤΡΩ(*) |
---|---|
ένας | 7 |
δύο | ένας |
4 | ένας |
5 | δύο |
Όπως μπορούμε να δούμε παραπάνω, σε κάθε κατηγορία_id, η στήλη COUNT (*) αντιπροσωπεύει τον αριθμό των σειρών που ανήκουν σε κάθε κατηγορία_id.
COUNT με IF
Ας δούμε ένα παράδειγμα χρήσης μιας συνθήκης IF μέσα στη συνάρτηση COUNT. Μπορούμε να τοποθετήσουμε μια έκφραση IF μέσα στη συνάρτηση COUNT και να ορίσουμε την τιμή σε NULL για ψευδή συνθήκη και οποιαδήποτε μη μηδενική τιμή για την πραγματική συνθήκη.
Κάθε τιμή ΜΗΝ NULL θα μετράται ως συνάρτηση μίας γραμμής w.r.t COUNT.
Για παράδειγμα: Χρησιμοποιήστε τη συνάρτηση COUNT για να βρείτε όλα τα προϊόντα στο εύρος τιμών των 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Παραγωγή:
αρίθμηση_από_20 |
---|
7 |
Στο παραπάνω ερώτημα, έχουμε λάβει το COUNT όλων των προϊόντων των οποίων το εύρος τιμών κυμαίνεται μεταξύ 0 και 20. Για την κατάσταση FALSE, έχουμε ορίσει την τιμή σε NULL, η οποία δεν μετράται, όταν η σειρά αξιολογείται για διαφορετικές τιμές στηλών .
COUNT με ΕΝΔΕΙΞΕΙΣ
COUNT μπορεί να χρησιμοποιηθεί και με τις δηλώσεις JOIN. Δεδομένου ότι το COUNT ισχύει για το αριθ. σειρών, μπορεί να χρησιμοποιηθεί με οποιονδήποτε συνδυασμό ενός ερωτήματος που λειτουργεί σε έναν πίνακα ή σε έναν πολλαπλό πίνακα χρησιμοποιώντας το JOINS.
Παράδειγμα: Γίνετε μέλος στον πίνακα product_details και στην κατηγορία_στοιχεία και βρείτε τον αριθμό ανά όνομα_κατηγορίας από τον πίνακα product_details.
SELECT category_name, COUNT(category_name) from product_details pd INNER JOIN category_details cd ON cd.category_id = pd.category_id GROUP BY category_name;
Παραγωγή:
όνομα κατηγορίας | COUNT (όνομα_κατηγορίας) |
---|---|
FMCG | 7 |
ΕΠΙΠΛΑ | ένας |
ΣΥΣΚΕΥΕΣ | ένας |
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ | δύο |
Συμβουλή & κόλπο
Χρησιμοποιώντας ψευδώνυμο στήλης για τη στήλη που εμφανίζει το αποτέλεσμα της συνάρτησης COUNT: Μπορούμε να χρησιμοποιήσουμε ένα ψευδώνυμο στήλης μαζί με τη συνάρτηση COUNT για να έχουμε καθορισμένα από το χρήστη ονόματα στηλών για τη στήλη που εμφανίζει τα αποτελέσματα της συνάρτησης COUNT.
Για παράδειγμα: Ας υποθέσουμε ότι θέλουμε να μετρήσουμε τον αριθμό των κατηγοριών στον πίνακα_στοιχεία_κατηγορίας και να ονομάσουμε την προκύπτουσα στήλη ως κατηγορία_κατηγορία, μπορούμε να χρησιμοποιήσουμε το παρακάτω ερώτημα:
SELECT COUNT(*) as category_count from category_details;
Παραγωγή:
κατηγορία_αριθμός |
---|
5 |
Συχνές Ερωτήσεις
Ε # 1) Πώς μπορώ να χρησιμοποιήσω τη συνάρτηση COUNT στη MySQL;
Απάντηση: Η συνάρτηση COUNT είναι μια αθροιστική συνάρτηση που μπορεί να χρησιμοποιηθεί με 3 τρόπους.
- ΜΕΤΡΩ(*) - Αυτό θα COUNT όλες τις σειρές που επιστράφηκαν από το SELECT QUERY.
- COUNT (έκφραση) - Αυτό θα COUNT όλες τις NON NULL τιμές για την έκφραση.
- COUNT (έκφραση DISTINCT) - Αυτό θα COUNT όλες τις τιμές NON NULL και UNIQUE έναντι της έκφρασης.
Q # 2) Ποια είναι η διαφορά μεταξύ Count (*) και Count (1) στο SQL;
Απάντηση: Και οι δύο δηλώσεις συμπεριφέρονται με τον ίδιο τρόπο. Από τον ορισμό του COUNT της MySQL, οτιδήποτε σε παρένθεση () είναι μια έκφραση - και οποιαδήποτε τιμή ΜΗ NULL θα μετρηθεί ως 1.
Έτσι, σε αυτήν την περίπτωση, τόσο το * όσο και το 1 αντιμετωπίζονται ως ΜΗΝ NULL και το ίδιο αποτέλεσμα επιστρέφεται, δηλαδή το αποτέλεσμα και των δύο παρακάτω ερωτημάτων θα είναι το ίδιο.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε για τη συνάρτηση COUNT και τις διάφορες παραλλαγές που παρέχονται από τη MySQL.
Είδαμε επίσης πώς μπορούμε να χρησιμοποιήσουμε COUNT με διαφορετικά σενάρια, όπως ο συνδυασμός COUNT με GROUP BY και η σύνταξη μιας συνάρτησης IF στη συνάρτηση COUNT.
Η συνάρτηση COUNT είναι μία από τις πιο σημαντικές και ευρέως χρησιμοποιούμενες συναρτήσεις στη MySQL και χρησιμοποιείται σε μεγάλο βαθμό για τη συγκέντρωση δεδομένων ανάλογα με τις καθορισμένες συνθήκες για έναν ή περισσότερους πίνακες.
Συνιστώμενη ανάγνωση
- MySQL ALTER TABLE - Πώς να προσθέσετε στήλη σε έναν πίνακα στο MySQL
- MySQL CONCAT και GROUP_CONCAT Λειτουργίες με παραδείγματα
- MySQL CREATE USER: Πώς να δημιουργήσετε νέο χρήστη στο MySQL
- MySQL JOIN Tutorial: Εσωτερικό, εξωτερικό, σταυρό, αριστερά, δεξιά και μόνος
- MySQL LIKE - Εκμάθηση με παραδείγματα σύνταξης και χρήσης
- MySQL GROUP BY Clause - Tutorial με παραδείγματα
- MySQL Substring And Substring_Index Λειτουργίες με παραδείγματα
- MySQL Δημιουργία εκπαιδευτικού προγράμματος με παραδείγματα κώδικα