Artikulo Direktoryo
MySQL I-sumada ang grupo pinaagi sa paggamit?database sa MySQLDetalyadong pagpatin-aw sa grupo pinaagi sa ihap
MySQL GROUP BY pahayag
Ang GROUP BY nga pahayag naggrupo sa resulta nga gitakda base sa usa o daghan pang mga kolum.
Sa grupo nga kolum mahimo natong gamiton ang COUNT, SUM, AVG, ug uban pa nga mga function.
GROUP PINAAGI sa syntax
SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
Pananglitan nga demonstrasyon
Ang pananglitan niini nga kapitulo naggamit sa mosunod nga estraktura ug datos sa lamesa.Sa dili pa kini gamiton, mahimo natong i-import ang mosunod nga datos ngadto sa database.
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;
Human malampuson ang pag-import, ipatuman ang mosunod nga pahayag sa 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)
Sunod atong gamiton ang GROUP BY nga pahayag sa paggrupo sa talaan sa datos pinaagi sa ngalan ug ihap kung pila ang mga rekord sa matag tawo:
mysql> SELECT name, COUNT(*) FROM employee_tbl GROUP BY name; +--------+----------+ | name | COUNT(*) | +--------+----------+ | 小丽 | 1 | | 小明 | 3 | | 小王 | 2 | +--------+----------+ 3 rows in set (0.01 sec)
Gamita WITH ROLLUP
ANG WITH ROLLUP mahimong mag-implementar sa samang estadistika (SUM, AVG, COUNT...) base sa gigrupong estadistika.
Pananglitan, among gigrupo ang naa sa ibabaw nga lamesa sa datos pinaagi sa ngalan, ug dayon ihap ang gidaghanon sa mga higayon nga ang matag tawo naka-log in:
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)
Ang rekord nga NULL nagrepresentar sa gidaghanon sa mga login alang sa tanan.
Mahimo natong gamiton ang coalesce aron magbutang og ngalan nga makapuli sa NUll, coalesce syntax:
select coalesce(a,b,c);
Deskripsyon sa parametro: kung a==null, pilia ang b; kung b==null, pilia ang c; kung a!=null, pilia ang a; kung ang abc null, ibalik nga null (walay kahulogan).
Sa mosunod nga pananglitan kung ang ngalan walay sulod gigamit namo ang kinatibuk-an sa baylo:
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)
Paglaum Chen Weiliang Blog ( https://www.chenweiliang.com/ ) mipaambit sa "MySQL sum group pinaagi sa paggamit? Ang Detalyadong Pagpatin-aw sa Grupo pinaagi sa Ihap sa MySQL Database" makatabang kanimo.
Welcome sa pagpaambit sa link niini nga artikulo:https://www.chenweiliang.com/cwl-477.html
Malipayon nga pag-abut sa channel sa Telegram sa blog ni Chen Weiliang aron makuha ang labing bag-ong mga update!
📚 Kini nga giya adunay daghang kantidad, 🌟Kini usa ka talagsaon nga oportunidad, ayaw palabya kini! ⏰⌛💨
Share ug like kung ganahan ka!
Ang imong pagpaambit ug pag-like mao ang among padayon nga kadasig!