MySQL sumos grupė pagal naudojimą? Išsamus grupės paaiškinimas pagal skaičių MySQL duomenų bazėje

MySQL Kaip naudoti sumos grupę pagal?MySQL duomenų bazėIšsamus grupės paaiškinimas pagal skaičių

MySQL GROUP BY teiginys

Teiginys GROUP BY sugrupuoja rezultatų rinkinį pagal vieną ar daugiau stulpelių.

Sugrupuotuose stulpeliuose galime naudoti tokias funkcijas kaip COUNT, SUM, AVG ir kt.

GROUP BY sintaksė

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

Demonstracijos pavyzdys

Šio skyriaus pavyzdžiuose naudojama tokia lentelės struktūra ir duomenys.Prieš naudodami galime importuoti šiuos duomenis į duomenų bazę.

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;

Kai importavimas bus sėkmingas, vykdykite šį SQL sakinį:

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)

Tada naudojame teiginį GROUP BY, kad sugrupuotume duomenų lentelę pagal pavadinimą ir suskaičiuotume, kiek įrašų turi kiekvienas asmuo:

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

Naudoti SU ROLLUP

SU ROLLUP gali atlikti tą pačią statistiką (SUM, AVG, COUNT...) remiantis sugrupuotais statistiniais duomenimis.

Pavyzdžiui, aukščiau pateiktą duomenų lentelę sugrupuojame pagal pavadinimą ir suskaičiuojame, kiek kartų kiekvienas asmuo prisijungia:

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)

Įrašas NULL nurodo visų prisijungimų skaičių.

Galime naudoti sujungimą norėdami nustatyti pavadinimą, kuris gali pakeisti NUll. coalesce sintaksė:

select coalesce(a,b,c);

Parametrų aprašymas: jei a==null, pasirinkite b; jei b==null, pasirinkite c; jei a!=null, pasirinkite a; jei abu abc yra nuliai, grąžinkite nulius (beprasmę).

Šiame pavyzdyje, jei pavadinimas tuščias, vietoj jo naudojame bendrą sumą:

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 tinklaraštis ( https://www.chenweiliang.com/ ) bendrino "MySQL sumos grupė pagal naudojimą?" Išsamus grupės paaiškinimas pagal skaičių MySQL duomenų bazėje jums bus naudingas.

Kviečiame pasidalinti šio straipsnio nuoroda:https://www.chenweiliang.com/cwl-477.html

Sveiki atvykę į Chen Weiliang tinklaraščio Telegram kanalą, kad gautumėte naujausius atnaujinimus!

🔔 Būkite pirmas, kuris kanalo viršaus kataloge gaus vertingą „ChatGPT turinio rinkodaros AI įrankio naudojimo vadovą“! 🌟
📚 Šis vadovas turi didžiulę vertę, 🌟Tai reta galimybė, nepraleiskite jos! ⏰⌛💨
Dalinkitės ir like jei patiko!
Jūsų dalijimasis ir paspaudimai „Patinka“ yra mūsų nuolatinė motyvacija!

 

发表 评论

Jūsų el. Pašto adresas nebus paskelbtas. Naudojami privalomi laukai * Etiketė

slinkite į viršų