MySQL sum gruppe efter brug? Detaljeret forklaring af gruppe efter antal i MySQL-database

MySQL Sum gruppe efter brug?MySQL databaseDetaljeret forklaring af gruppe efter antal

MySQL GROUP BY-udsagn

GROUP BY-sætningen grupperer resultatsættet baseret på en eller flere kolonner.

På den grupperede kolonne kan vi bruge COUNT, SUM, AVG osv. funktioner.

GRUPPER EFTER syntaks

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

Eksempel demonstration

Eksemplet i dette kapitel bruger følgende tabelstruktur og data. Inden vi bruger det, kan vi importere følgende data til databasen.

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;

Når importen er vellykket, skal du udføre følgende SQL-sætning:

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)

Dernæst bruger vi GROUP BY-sætningen til at gruppere datatabellen efter navn og tælle, hvor mange poster hver person har:

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

Brug MED ROLLUP

MED ROLLUP kan implementere den samme statistik (SUM, AVG, COUNT...) på basis af grupperet statistik.

For eksempel grupperer vi ovenstående datatabel efter navn og tæller derefter antallet af gange, hver person har logget ind:

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)

Posten NULL repræsenterer antallet af logins for alle.

Vi kan bruge coalesce til at sætte et navn, der kan erstatte NUll, coalesce syntaks:

select coalesce(a,b,c);

Parameterbeskrivelse: hvis a==null, vælg b; hvis b==null, vælg c; hvis a!=null, vælg a; hvis abc er null, returner null (meningsløst).

I det følgende eksempel, hvis navnet er tomt, bruger vi totalen i stedet:

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/ ) delte "MySQL sum gruppe efter brug? Detaljeret forklaring af gruppe efter antal i MySQL-databasen" er nyttig for dig.

Velkommen til at dele linket til denne artikel:https://www.chenweiliang.com/cwl-477.html

Velkommen til Telegram-kanalen på Chen Weiliangs blog for at få de seneste opdateringer!

🔔 Vær den første til at få den værdifulde "ChatGPT Content Marketing AI Tool Usage Guide" i kanalens øverste bibliotek! 🌟
📚 Denne guide indeholder enorm værdi, 🌟Dette er en sjælden mulighed, gå ikke glip af det! ⏰⌛💨
Del og like hvis du har lyst!
Din deling og likes er vores kontinuerlige motivation!

 

发表 评论

Din e-mail-adresse vil ikke blive offentliggjort. 必填 项 已 用 * 标注

scroll til toppen