භාවිතය අනුව MySQL එකතුව සමූහයද? MySQL දත්ත ගබඩාවේ ගණන් කිරීම අනුව කණ්ඩායම පිළිබඳ සවිස්තරාත්මක පැහැදිලි කිරීම

MySQL භාවිතය අනුව සමූහය එකතු කරන්නද?MySQL දත්ත සමුදායගණන් කිරීම අනුව කණ්ඩායම පිළිබඳ සවිස්තරාත්මක පැහැදිලි කිරීම

MySQL GROUP ප්‍රකාශය මගින්

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 සමඟ භාවිතා කරන්න

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 නියෝජනය කරන්නේ සියලු දෙනා සඳහා වන පිවිසුම් ගණනයි.

NUll, coalesce syntax ආදේශ කළ හැකි නමක් සැකසීමට අපට 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)

Hope Chen Weiliang බ්ලොග් ( https://www.chenweiliang.com/ ) බෙදාගත් "MySQL එකතුව සමූහය භාවිතය අනුවද? MySQL දත්ත සමුදායේ ගණන් කිරීම අනුව සමූහය පිළිබඳ සවිස්තරාත්මක පැහැදිලි කිරීම" ඔබට ප්‍රයෝජනවත් වේ.

මෙම ලිපියේ සබැඳිය බෙදා ගැනීමට සාදරයෙන් පිළිගනිමු:https://www.chenweiliang.com/cwl-477.html

නවතම යාවත්කාලීන ලබා ගැනීමට Chen Weiliang ගේ බ්ලොගයේ Telegram නාලිකාව වෙත සාදරයෙන් පිළිගනිමු!

🔔 නාලිකා ඉහළ නාමාවලියෙහි වටිනා "ChatGPT අන්තර්ගත අලෙවිකරණ AI මෙවලම් භාවිත මාර්ගෝපදේශය" ලබා ගත් පළමු පුද්ගලයා වන්න! 🌟
📚 මෙම මාර්ගෝපදේශයෙහි විශාල වටිනාකමක් ඇත, 🌟මෙය දුර්ලභ අවස්ථාවක්, එය අතපසු නොකරන්න! ⏰⌛💨
ඔබ කැමති නම් Share කර Like කරන්න!
ඔබගේ බෙදාගැනීම් සහ කැමැත්ත අපගේ අඛණ්ඩ අභිප්‍රේරණයයි!

 

发表

ඔබගේ විද්‍යුත් තැපැල් ලිපිනය ප්‍රකාශයට පත් නොකෙරේ. අවශ්‍ය ක්ෂේත්‍ර භාවිතා වේ * ලේබලය

ඉහළට අනුචලනය කරන්න