MySQL sum group by use? MySQL ڊيٽابيس ۾ شمار جي حساب سان گروپ جي تفصيلي وضاحت

هن MySQL استعمال جي حساب سان گروپ؟MySQL ڊيٽابيسڳڻپ جي لحاظ کان گروپ جي تفصيلي وضاحت

MySQL GROUP BY بيان

GROUP BY بيان هڪ يا وڌيڪ ڪالمن تي ٻڌل نتيجن کي گروپ ڪري ٿو.

گروپ ڪيل ڪالمن تي اسين COUNT، SUM، AVG، وغيره افعال استعمال ڪري سگھون ٿا.

GROUP BY نحو

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 سان گڏ گروپ ڪيل انگن اکرن جي بنياد تي ساڳيا انگ اکر (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)

اميد چن ويلانگ بلاگ ( https://www.chenweiliang.com/ ) شيئر ڪيو ”MySQL sum group by use? MySQL ڊيٽابيس ۾ ڳڻپ جي حساب سان گروپ جي تفصيلي وضاحت" توھان لاءِ مددگار آھي.

هن آرٽيڪل جي لنڪ کي حصيداري ڪرڻ لاء ڀليڪار:https://www.chenweiliang.com/cwl-477.html

تازن تازه ڪاريون حاصل ڪرڻ لاءِ Chen Weiliang جي بلاگ جي ٽيليگرام چينل تي ڀليڪار!

🔔 چينل جي ٽاپ ڊاريڪٽري ۾ قيمتي "ChatGPT مواد مارڪيٽنگ AI اوزار استعمال ڪرڻ جي گائيڊ" حاصل ڪرڻ وارا پھريون بڻجي وڃو! 🌟
📚 هي گائيڊ وڏي قيمت تي مشتمل آهي، 🌟 هي هڪ نادر موقعو آهي، ان کي نه وڃايو! ⏰⌛💨
پسند اچي ته شيئر ڪريو ۽ پسند ڪريو!
توهان جي حصيداري ۽ پسند اسان جي مسلسل حوصلا آهن!

 

发表 评论

توهان جو اي ميل پتو شايع نه ڪيو ويندو. 必填 项 已 用 * ليبل

مٿي ڏانهن ڇڪيو