İstifadəyə görə MySQL cəmi qrupu? MySQL verilənlər bazasında saya görə qrupların ətraflı izahı

MySQL İstifadəyə görə cəmi qrup?MySQL verilənlər bazasıSayıya görə qrupun ətraflı izahı

MySQL GROUP BY ifadəsi

GROUP BY ifadəsi nəticə dəstini bir və ya bir neçə sütun əsasında qruplaşdırır.

Qruplaşdırılmış sütunda biz COUNT, SUM, AVG və s. funksiyalardan istifadə edə bilərik.

Sintaksisə görə qruplaşdırın

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

Nümunə nümayişi

Bu fəsildəki nümunədə aşağıdakı cədvəl strukturu və verilənləri istifadə olunur.İstifadə etməzdən əvvəl biz aşağıdakı məlumatları verilənlər bazasına idxal edə bilərik.

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;

Import uğurlu olduqdan sonra aşağıdakı SQL ifadəsini yerinə yetirin:

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)

Daha sonra məlumat cədvəlini adla qruplaşdırmaq və hər bir şəxsin neçə qeydi olduğunu hesablamaq üçün GROUP BY ifadəsindən istifadə edirik:

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

TOPLAM İLƏ istifadə edin

WITH ROLLUP qruplaşdırılmış statistik məlumatlar əsasında eyni statistik məlumatları (SUM, AVG, COUNT...) həyata keçirə bilər.

Məsələn, yuxarıdakı məlumat cədvəlini adla qruplaşdırırıq və sonra hər bir şəxsin daxil olma sayını hesablayırıq:

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 qeydi hər kəs üçün girişlərin sayını göstərir.

NUll, coalesce sintaksisini əvəz edə biləcək ad təyin etmək üçün coalesce istifadə edə bilərik:

select coalesce(a,b,c);

Parametr təsviri: a==null olarsa b seçin; b==nullsa c seçin; a!=nullsa a seçin; abc nulldursa, null (mənasız) qaytarın.

Aşağıdakı nümunədə ad boşdursa, bunun əvəzinə cəmi istifadə edirik:

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 Blogu ( https://www.chenweiliang.com/ ) paylaşılan "MySQL cəmi qrupu istifadəyə görə? MySQL Verilənlər Bazasında Qrupun Sayıya Görə Ətraflı izahı” sizin üçün faydalıdır.

Bu məqalənin linkini paylaşmağa xoş gəlmisiniz:https://www.chenweiliang.com/cwl-477.html

Ən son yenilikləri əldə etmək üçün Chen Weiliang bloqunun Telegram kanalına xoş gəlmisiniz!

🔔 Kanalın ən yaxşı kataloqunda dəyərli "ChatGPT Məzmun Marketinq AI Aləti İstifadə Bələdçisi"ni ilk əldə edən siz olun! 🌟
📚 Bu təlimatda böyük dəyər var, 🌟Bu nadir fürsətdir, qaçırmayın! ⏰⌛💨
Bəyəndinizsə paylaşın və bəyənin!
Paylaşımlarınız və bəyənmələriniz davamlı motivasiyamızdır!

 

发表 评论

Elektron poçtunuz dərc olunmayacaq. Zəruri sahələrdən istifadə olunur * Etiket

yuxarıya sürüşdürün