د کارولو له مخې د MySQL مجموعه ډله؟ د MySQL ډیټابیس کې د شمیرې له مخې د ګروپ تفصیلي توضیحات

مای د کارونې له مخې ډله؟د MySQL ډیټابیسد شمیرې له مخې د ډلې تفصیلي توضیحات

د بیان له مخې MySQL ګروپ

د 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)

د رول اپ سره وکاروئ

د رول اپ سره کولی شي ورته احصایې پلي کړي (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، coalesce ترکیب ځای په ځای کړي:

select coalesce(a,b,c);

د پیرامیټر توضیحات: که a==null، b انتخاب کړئ؛ که b==null، c غوره کړئ؛ که a!=null، 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)

امید چن وییلینګ بلاګ ( https://www.chenweiliang.com/ ) شریک کړ "د کارولو له مخې د MySQL sum group؟ په MySQL ډیټابیس کې د شمیرې له مخې د ګروپ مفصل توضیحات" ستاسو لپاره ګټور دي.

د دې مقالې لینک شریکولو ته ښه راغلاست:https://www.chenweiliang.com/cwl-477.html

د نورو پټو چلونو د خلاصولو لپاره، زموږ د ټیلیګرام چینل سره یوځای کیدو ته ښه راغلاست!

که مو خوښه شوه لایک او شریک کړئ! ستاسو شریکول او خوښول زموږ دوامداره هڅونه ده!

 

评论 评论

ستاسو بریښنالیک پته به خپره نشي. اړین ساحې کارول کیږي * لیبل

پاس شئ