مجموع 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)

استخدم مع ROLLUP

يمكن لـ 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 عدد عمليات تسجيل الدخول للجميع.

يمكننا استخدام الاندماج لتعيين اسم يمكن أن يحل محل NUll ، بناء الجملة:

select coalesce(a,b,c);

وصف المعلمة: إذا كانت القيمة == خالية ، فاختر b ؛ وإذا كانت b == خالية ، فاختر c ؛ وإذا كانت a! = خالية ، فاختر a ؛ إذا كانت abc خالية ، فقم بإرجاع قيمة خالية (لا معنى لها).

في المثال التالي ، إذا كان الاسم فارغًا ، فإننا نستخدم المجموع بدلاً من ذلك:

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" في الدليل العلوي للقناة! 🌟
📚 يحتوي هذا الدليل على قيمة كبيرة، 🌟هذه فرصة نادرة، لا تفوتها! ⏰⌛💨
شارك و اعجبك اذا اردت
مشاركتك وإعجاباتك هي دافعنا المستمر!

 

发表 评论

لن يتم نشر عنوان بريدك الإلكتروني. 必填 项 已 用 * 标注

انتقل إلى أعلى