ਉਪਯੋਗ ਦੁਆਰਾ MySQL ਜੋੜ ਸਮੂਹ? MySQL ਡੇਟਾਬੇਸ ਵਿੱਚ ਗਿਣਤੀ ਦੁਆਰਾ ਸਮੂਹ ਦੀ ਵਿਸਤ੍ਰਿਤ ਵਿਆਖਿਆ

MySQL ਵਰਤੋਂ ਦੁਆਰਾ ਸਮੂਹ ਦਾ ਜੋੜ?MySQL ਡਾਟਾਬੇਸਗਿਣਤੀ ਦੁਆਰਾ ਸਮੂਹ ਦੀ ਵਿਸਤ੍ਰਿਤ ਵਿਆਖਿਆ

ਕਥਨ ਦੁਆਰਾ MySQL ਗਰੁੱਪ

GROUP BY ਕਥਨ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਕਾਲਮਾਂ ਦੇ ਅਧਾਰ 'ਤੇ ਸੈੱਟ ਕੀਤੇ ਨਤੀਜੇ ਨੂੰ ਸਮੂਹ ਕਰਦਾ ਹੈ।

ਸਮੂਹਿਕ ਕਾਲਮ 'ਤੇ ਅਸੀਂ COUNT, SUM, AVG, ਆਦਿ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ।

ਸੰਟੈਕਸ ਦੁਆਰਾ GROUP

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

ਨਵੀਨਤਮ ਅਪਡੇਟਸ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਚੇਨ ਵੇਇਲਿਯਾਂਗ ਦੇ ਬਲੌਗ ਦੇ ਟੈਲੀਗ੍ਰਾਮ ਚੈਨਲ ਵਿੱਚ ਸੁਆਗਤ ਹੈ!

🔔 ਚੈਨਲ ਦੀ ਚੋਟੀ ਦੀ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਕੀਮਤੀ "ChatGPT ਸਮੱਗਰੀ ਮਾਰਕੀਟਿੰਗ AI ਟੂਲ ਵਰਤੋਂ ਗਾਈਡ" ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਪਹਿਲੇ ਬਣੋ! 🌟
📚 ਇਸ ਗਾਈਡ ਵਿੱਚ ਬਹੁਤ ਵੱਡਾ ਮੁੱਲ ਹੈ, 🌟ਇਹ ਇੱਕ ਦੁਰਲੱਭ ਮੌਕਾ ਹੈ, ਇਸ ਨੂੰ ਨਾ ਗੁਆਓ! ⏰⌛💨
ਜੇ ਚੰਗਾ ਲੱਗੇ ਤਾਂ ਸ਼ੇਅਰ ਅਤੇ ਲਾਈਕ ਕਰੋ!
ਤੁਹਾਡੀ ਸ਼ੇਅਰਿੰਗ ਅਤੇ ਪਸੰਦ ਸਾਡੀ ਨਿਰੰਤਰ ਪ੍ਰੇਰਣਾ ਹਨ!

 

ਇੱਕ ਟਿੱਪਣੀ ਪੋਸਟ

ਤੁਹਾਡਾ ਈਮੇਲ ਪਤਾ ਪ੍ਰਕਾਸ਼ਤ ਨਹੀ ਕੀਤਾ ਜਾਵੇਗਾ. ਲੋੜੀਂਦੇ ਖੇਤਰ ਵਰਤੇ ਜਾ ਰਹੇ ਹਨ * ਲੇਬਲ

ਸਿਖਰ ਤੱਕ ਸਕ੍ਰੋਲ ਕਰੋ