Ομάδα άθροισης MySQL κατά χρήση; Λεπτομερής επεξήγηση της ομάδας ανά μέτρηση στη βάση δεδομένων MySQL

MySQL Ομάδα άθροισης κατά χρήση;Βάση δεδομένων MySQLΛεπτομερής επεξήγηση της ομάδας ανά μέτρηση

Δήλωση MySQL GROUP BY

Η δήλωση GROUP BY ομαδοποιεί το σύνολο αποτελεσμάτων με βάση μία ή περισσότερες στήλες.

Στην ομαδοποιημένη στήλη μπορούμε να χρησιμοποιήσουμε συναρτήσεις COUNT, SUM, AVG κ.λπ.

ΟΜΑΔΑ ΑΝΑ σύνταξη

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

Παράδειγμα επίδειξης

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

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
--  Table structure for `employee_tbl`
-- ----------------------------
DROP TABLE IF EXISTS `employee_tbl`;
CREATE TABLE `employee_tbl` (
  `id` int(11) NOT NULL,
  `name` char(10) NOT NULL DEFAULT '',
  `date` datetime NOT NULL,
  `singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
--  Records of `employee_tbl`
-- ----------------------------
BEGIN;
INSERT INTO `employee_tbl` VALUES ('1', '小明', '2016-04-22 15:25:33', '1'), ('2', '小王', '2016-04-20 15:25:47', '3'), ('3', '小丽', '2016-04-19 15:26:02', '2'), ('4', '小王', '2016-04-07 15:26:14', '4'), ('5', '小明', '2016-04-11 15:26:40', '4'), ('6', '小明', '2016-04-04 15:26:54', '2');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

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

mysql> set names utf8;
mysql> SELECT * FROM employee_tbl;
+----+--------+---------------------+--------+
| id | name   | date                | singin |
+----+--------+---------------------+--------+
|  1 | 小明 | 2016-04-22 15:25:33 |      1 |
|  2 | 小王 | 2016-04-20 15:25:47 |      3 |
|  3 | 小丽 | 2016-04-19 15:26:02 |      2 |
|  4 | 小王 | 2016-04-07 15:26:14 |      4 |
|  5 | 小明 | 2016-04-11 15:26:40 |      4 |
|  6 | 小明 | 2016-04-04 15:26:54 |      2 |
+----+--------+---------------------+--------+
6 rows in set (0.00 sec)

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

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;
+--------+----------+
| name   | COUNT(*) |
+--------+----------+
| 小丽 |        1 |
| 小明 |        3 |
| 小王 |        2 |
+--------+----------+
3 rows in set (0.01 sec)

Χρήση ΜΕ ΣΥΛΛΟΓΗ

Το WITH ROLLUP μπορεί να εφαρμόσει τα ίδια στατιστικά στοιχεία (SUM, AVG, COUNT...) βάσει ομαδοποιημένων στατιστικών.

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

mysql> SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
+--------+--------------+
| name   | singin_count |
+--------+--------------+
| 小丽 |            2 |
| 小明 |            7 |
| 小王 |            7 |
| NULL   |           16 |
+--------+--------------+
4 rows in set (0.00 sec)

Η εγγραφή NULL αντιπροσωπεύει τον αριθμό των συνδέσεων για όλους.

Μπορούμε να χρησιμοποιήσουμε το coalesce για να ορίσουμε ένα όνομα που μπορεί να αντικαταστήσει τη σύνταξη NUll, coalesce:

select coalesce(a,b,c);

Περιγραφή παραμέτρου: εάν a==null, επιλέξτε b, εάν b==null, επιλέξτε c, εάν a!=null, επιλέξτε a, εάν το abc είναι null, επιστρέψτε null (χωρίς νόημα).

Στο παρακάτω παράδειγμα, εάν το όνομα είναι κενό, χρησιμοποιούμε το σύνολο:

mysql> SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
+--------------------------+--------------+
| coalesce(name, '总数') | singin_count |
+--------------------------+--------------+
| 小丽                   |            2 |
| 小明                   |            7 |
| 小王                   |            7 |
| 总数                   |           16 |
+--------------------------+--------------+
4 rows in set (0.01 sec)

Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ ) κοινοποίησε την "ομάδα αθροίσματος MySQL κατά χρήση; Λεπτομερής Επεξήγηση της Ομάδας ανά Καταμέτρηση στη βάση δεδομένων MySQL" είναι χρήσιμη για εσάς.

Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-477.html

Καλώς ήρθατε στο κανάλι Telegram του ιστολογίου του Chen Weiliang για να λαμβάνετε τις τελευταίες ενημερώσεις!

🔔 Γίνετε ο πρώτος που θα αποκτήσει τον πολύτιμο "Οδηγό χρήσης εργαλείου τεχνητής νοημοσύνης μάρκετινγκ περιεχομένου ChatGPT" στον κορυφαίο κατάλογο του καναλιού! 🌟
📚 Αυτός ο οδηγός περιέχει τεράστια αξία, 🌟Αυτή είναι μια σπάνια ευκαιρία, μην τη χάσετε! ⏰⌛💨
Κοινοποιήστε και κάντε like αν σας αρέσει!
Η κοινή χρήση και τα like σας είναι το συνεχές μας κίνητρο!

 

发表 评论

Η διεύθυνση email σας δεν θα δημοσιευθεί. 必填 项 已 用 * 标注

κύλιση στην κορυφή