பயன்பாட்டின் அடிப்படையில் MySQL தொகைக் குழுவா? MySQL தரவுத்தளத்தில் எண்ணிக்கையின் அடிப்படையில் குழுவின் விரிவான விளக்கம்

MySQL, பயன்பாட்டின்படி கூட்டுத்தொகை?MySQL தரவுத்தளம்எண்ணிக்கை வாரியாக குழுவின் விரிவான விளக்கம்

MySQL GROUP அறிக்கை மூலம்

அறிக்கை மூலம் குழு ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளின் அடிப்படையில் அமைக்கப்பட்ட முடிவைக் குழுவாக்குகிறது.

தொகுக்கப்பட்ட நெடுவரிசையில் நாம் 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 உடன் பயன்படுத்தவும்

குழுப்படுத்தப்பட்ட புள்ளிவிவரங்களின் அடிப்படையில் அதே புள்ளிவிவரங்களை (SUM, AVG, COUNT...) ROLLUP மூலம் செயல்படுத்த முடியும்.

எடுத்துக்காட்டாக, மேலே உள்ள தரவு அட்டவணையை பெயரால் தொகுத்து, ஒவ்வொரு நபரும் எத்தனை முறை உள்நுழைந்துள்ளார்கள் என்பதைக் கணக்கிடுகிறோம்:

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 தொடரியல் ஆகியவற்றை மாற்றக்கூடிய பெயரை அமைக்க நாம் coalesce ஐப் பயன்படுத்தலாம்:

select coalesce(a,b,c);

அளவுரு விளக்கம்: a==null எனில், b என்பதைத் தேர்ந்தெடுக்கவும்; b==பூஜ்யமாக இருந்தால், 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 தொகைக் குழு பயன்பாட்டின் அடிப்படையில்? MySQL தரவுத்தளத்தில் எண்ணிக்கையின் அடிப்படையில் குழு பற்றிய விரிவான விளக்கம்" உங்களுக்கு உதவியாக இருக்கும்.

இந்தக் கட்டுரையின் இணைப்பைப் பகிர வரவேற்கிறோம்:https://www.chenweiliang.com/cwl-477.html

மேலும் மறைக்கப்பட்ட தந்திரங்களைத் திறக்க🔑, எங்கள் டெலிகிராம் சேனலில் சேர வரவேற்கிறோம்!

பிடித்திருந்தால் லைக் செய்து பகிருங்கள்! உங்களின் ஷேர்களும் லைக்குகளும் எங்களின் தொடர் உந்துதலாகும்!

 

发表 评论

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்படாது. தேவையான புலங்கள் பயன்படுத்தப்படுகின்றன * லேபிள்

டாப் உருட்டு