MySQL sum gruppe etter bruk? Detaljert forklaring av gruppe etter antall i MySQL database

MySQL Sum gruppe etter bruk?MySQL-databaseDetaljert forklaring av gruppe etter antall

MySQL GROUP BY-uttalelse

GROUP BY-setningen grupperer resultatsettet basert på én eller flere kolonner.

På den grupperte kolonnen kan vi bruke funksjonene COUNT, SUM, AVG, etc..

GRUPPER ETTER syntaks

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

Eksempel demonstrasjon

Eksemplet i dette kapittelet bruker følgende tabellstruktur og data Før vi bruker det, kan vi importere følgende data inn i 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;

Etter at importen er vellykket, utfør følgende SQL-setning:

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)

Deretter bruker vi GROUP BY-setningen til å gruppere datatabellen etter navn og telle 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)

Bruk MED ROLLUP

MED ROLLUP kan implementere samme statistikk (SUM, AVG, COUNT...) på grunnlag av gruppert statistikk.

For eksempel grupperer vi datatabellen ovenfor etter navn, og teller deretter antall ganger hver person har logget på:

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 representerer antall pålogginger for alle.

Vi kan bruke coalesce for å sette et navn som kan erstatte NUll, coalesce syntaks:

select coalesce(a,b,c);

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

I følgende eksempel, hvis navnet er tomt, bruker 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 blogg ( https://www.chenweiliang.com/ ) delte "MySQL sum gruppe etter bruk? Detaljert forklaring av gruppe etter antall i MySQL-databasen" er nyttig for deg.

Velkommen til å dele lenken til denne artikkelen:https://www.chenweiliang.com/cwl-477.html

Velkommen til Telegram-kanalen til Chen Weiliangs blogg for å få de siste oppdateringene!

🔔 Vær den første til å få den verdifulle "ChatGPT Content Marketing AI Tool Usage Guide" i kanalens toppkatalog! 🌟
📚 Denne guiden inneholder enorm verdi, 🌟Dette er en sjelden mulighet, ikke gå glipp av den! ⏰⌛💨
Del og lik om du vil!
Din deling og likes er vår kontinuerlige motivasjon!

 

发表 评论

E-postadressen din vil ikke offentliggjøres. 必填 项 已 用 * Merkelapp

bla til toppen