MySQL sum group amin'ny fampiasana? Fanazavana amin'ny antsipiriany momba ny vondrona amin'ny isa ao amin'ny database MySQL

MySQL Amboary ny vondrona amin'ny fampiasana?MySQL databaseFanazavana amin'ny antsipiriany momba ny vondrona amin'ny isa

MySQL GROUP BY fanambarana

Ny fanambarana GROUP BY dia manambatra ny vokatra voafantina mifototra amin'ny tsanganana iray na maromaro.

Ao amin'ny tsanganana voavondrona dia afaka mampiasa fiasa COUNT, SUM, AVG, sns.

GROUP BY syntax

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

Fampisehoana ohatra

Ny ohatra ato amin'ity toko ity dia mampiasa ireto rafitra sy angon-drakitra manaraka ireto. Alohan'ny hampiasana azy dia azontsika atao ny manafatra ireto angona manaraka ireto ao anaty tahiry.

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;

Rehefa vita ny fanafarana dia tanteraho ity fanambarana SQL manaraka ity:

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)

Avy eo dia mampiasa ny fanambarana GROUP BY izahay mba hanangonana ny latabatra data amin'ny anarana ary hanisa ny isan'ny rakitra ananan'ny olona tsirairay:

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;
+--------+----------+
| name   | COUNT(*) |
+--------+----------+
| 小丽 |        1 |
| 小明 |        3 |
| 小王 |        2 |
+--------+----------+
3 rows in set (0.01 sec)

Ampiasao miaraka amin'ny ROLLUP

WITH ROLLUP dia afaka mampihatra antontanisa mitovy (SUM, AVG, COUNT...) miorina amin'ny antontan'isa voavondrona.

Ohatra, atambatra amin'ny anarana ny latabatra angona etsy ambony, ary manisa ny isan'ny nidiran'ny olona tsirairay:

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)

Ny rakitra NULL dia maneho ny isan'ny fidirana ho an'ny rehetra.

Afaka mampiasa coalesce isika mba hametrahana anarana afaka manolo ny NUll, coalesce syntax:

select coalesce(a,b,c);

Famaritana parameter: raha a==null, mifidiana b; raha b==null, mifidiana c; raha a!=null, mifidiana a; raha abc dia tsy misy, avereno null (tsy misy dikany).

Amin'ity ohatra manaraka ity raha foana ny anarana dia mampiasa ny total isika fa tsy:

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 Blog ( https://www.chenweiliang.com/ ) nizara ny "MySQL sum group by use? Ny fanazavana amin'ny antsipiriany momba ny vondrona amin'ny isa ao amin'ny MySQL Database" dia manampy anao.

Tongasoa eto mizara ny rohy amin'ity lahatsoratra ity:https://www.chenweiliang.com/cwl-477.html

Tongasoa eto amin'ny fantsona Telegram an'ny bilaogin'i Chen Weiliang hahazoana vaovao farany!

🔔 Aoka ho voalohany hahazo ny "ChatGPT Content Marketing AI Tool Usage Guide" sarobidy ao amin'ny lahatahiry ambony fantsona! 🌟
📚 Ity torolalana ity dia misy sanda lehibe, 🌟Ity dia fotoana tsy fahita firy, aza adino! ⏰⌛💨
Partageo ary j'aime raha tianao!
Ny fizaranao sy ny j'aime no antony manosika anay hatrany!

 

Comments

Ny adiresy mailakao dia tsy havoaka. Ampiasaina ny saha ilaina * Label

horonana mankany ambony