引言
万物皆可分,不分直接“疯”——分组的真香现场(带戏精对话+最新游戏版)
你说“分组”新鲜?大错特错!这玩意儿从老祖宗摆贡品到现代人逛超市,从打工人搬砖到朋友圈吐槽,更到现在的热门游戏开黑,都是刻进DNA的刚需操作。没了分组,世界直接乱成一锅粥,不信咱现场演给你看。
场景一:超市不分组?顾客直接原地崩溃
(超市里,零食、生鲜、洗衣液、猪肉堆在一起,顾客张三拎着空篮子,一脸绝望)
张三:老板!我就买包盐啊!我从薯片堆里扒拉出一根排骨,从香皂旁边翻出半颗白菜,盐呢?!我盐去哪了!
超市老板(抹汗):别喊别喊!这不没来得及分组嘛,所有东西一股脑堆上了,我也找不着盐在哪!
张三(崩溃抱头):不分区不分组,我买个盐比寻宝还难!再这么搞,我盐没买到,先把超市搬空了!
你看,超市一分组,生鲜、零食、日化各归其位,顾客直奔目标,老板省心省力,这就是分组最朴素的魔力——专治混乱,拒绝大海捞针。
场景二:相册不分组?闺蜜在线互怼
闺蜜A:快!把上次旅游的合照发我!我要发朋友圈!
闺蜜B(翻了十分钟):救命!我相册里自拍、美食、宠物、工作截图全堆一起,三千多张照片,我眼都看花了!
闺蜜A:你就不能分个组?旅游照归旅游,自拍归自拍,找图一秒钟的事!
闺蜜B:悔啊!不分组的相册,就是大型乱葬岗,找张照片能把人逼疯!
不管是相册、衣柜还是文件柜,一分组就泾渭分明,再也不用在杂乱里翻找,效率直接拉满。
场景三:社交不分组?打工人社死现场
同事小李(慌张私聊):完了完了!我吐槽老板加班太狠,忘屏蔽领导,直接被他点赞了!
同事小王:谁让你不给好友分组?家人、朋友、同事、领导分好类,吐槽精准投放,社死根本找不到你!
小李(欲哭无泪):我现在就去分组!社交不分组,职场两行泪啊!
分组还能精准适配需求,朋友圈想发啥发啥,互不打扰,彻底告别尴尬时刻。
场景四:任务不分组?打工人直接内耗到崩溃
项目经理:这个月的策划、报表、客户对接全堆给你,赶紧弄!
打工人小周(瘫在工位):所有事搅在一起,我先做哪个?做着这个想着那个,脑子都要炸了!
资深同事:把任务分组!紧急的、重要的、琐碎的拆开,一项一项来,不然只会越忙越乱!
把工作、学习、生活分组,就是给大脑装收纳盒,精力不分散,做事不焦虑,直接告别精神内耗。
场景五:最新游戏不分组?玩家翻车破防还社死
(深夜,俩玩家正冲2026年3月最火的《原神》沉玉谷新副本,屏幕突然黑屏,玩家阿泽拍桌怒吼;旁边玩《三角洲行动》的阿宇也凑过来吐槽)
阿泽:焯!又翻车了!新BOSS残血,我想放治疗道具,翻了五分钟背包,矿石、食材、天赋书堆一起,治疗药藏在最底下,等我找到,队友全被秒了,还被骂菜狗!
阿宇(扶额叹气):你还好意思说?我玩《三角洲行动》组队开黑,没给队友分组,突击手、狙击手、支援手乱站位,我蹲那架枪,队友直接挡我枪口,结果被敌人一锅端,赛后还被拉进群吐槽!
阿泽(挠头):我以为游戏里分组没用,谁知道这么重要!那你咋解决的?
阿宇:笨死了!《原神》里把道具分治疗、攻击、素材组,角色按输出、辅助分组;《三角洲行动》给队友分好职责组,社群里再按攻略、闲聊、组队开黑分频道,不仅打怪不翻车,找同好、查技巧也一秒到位,这就是游戏圈的分组神器啊!
阿泽(火速操作):懂了懂了!这就去分组,再也不因为不分组拖后腿了!
你看,就连现在最火的游戏,分组都是刚需!不管是道具分类、队友分工,还是玩家社群分组,一分组就能告别混乱、提升效率,甚至还能避免游戏社死,这就是分组的万能魅力。
说到底,分组从来不是花里胡哨的形式主义,是贯穿过去、现在、未来的生活底层逻辑。小到超市货架、手机相册,大到人生规划、目标拆解,再到当下热门的游戏开黑,会分组的人,永远比别人活得清爽、高效、不内耗。毕竟把乱糟糟的一切归置明白,日子才能顺顺当当,游戏才能一路开挂,干啥都能事半功倍!
数据库数据查询 GROUP BY 概述
一、基础认知:GROUP BY 核心定位
- 定义
GROUP BY 是 SQL 中对查询结果按指定字段进行分组的子句,简单说就是“把相同特征的数据归为一类”(比如把超市里的零食都归到“零食组”)。 - 核心作用
配合聚合函数(如统计数量、求和),快速得到每组数据的汇总结果,不用逐行手动统计(比如统计“零食组”“生鲜组”各有多少商品)。 - 基础逻辑
按指定字段分组,字段值相同的记录会被归为一组,每组只返回1条汇总结果。
二、核心基础用法:GROUP BY 语法与简单实操
-
基础语法(仅核心必选部分)
SELECT 分组字段, 聚合函数(统计字段) FROM 表名 GROUP BY 分组字段;核心规则:SELECT 里除了“分组字段”,只能写聚合函数,不能写其他普通字段。
-
单字段分组(最基础、最常用)
- 作用:按一个字段分组统计(比如按“商品品类”统计数量);
- 极简示例:
-- 按品类统计商品数量 SELECT category, COUNT(*) FROM goods GROUP BY category;
-
多字段分组(基础版)
- 作用:按两个简单字段分组(比如按“门店+品类”统计销售额);
- 极简示例:
SELECT store, category, SUM(sales) FROM sales GROUP BY store, category;
-
WHERE + GROUP BY(基础筛选)
- 作用:先过滤不需要的行,再分组(比如只统计2026年3月的品类销售额);
- 极简示例:
SELECT category, SUM(sales) FROM sales WHERE sale_date >= '2026-03-01' GROUP BY category;
三、常用基础聚合函数(仅核心4个)
| 聚合函数 | 作用 | 简单示例 |
|---|---|---|
| COUNT(*) | 统计每组的记录总数 | COUNT(*) → 统计品类商品数 |
| SUM() | 计算每组字段的总和 | SUM(sales) → 统计品类销售额 |
| AVG() | 计算每组字段的平均值 | AVG(price) → 品类均价 |
| MAX() | 找每组字段的最大值 | MAX(price) → 品类最高价 |
| MIN() | 找每组字段的最小值 | MINprice) → 品类最低价 |
数据查询-group by
-- Active: 1775520646053@@127.0.0.1@3306@dataquerystudy
use DataQueryStudy;
-- 表名:student_score_by_class,用于存储学生成绩信息,核心用途是进行按班级 / 成绩的分组查询练习
create Table student_score_by_class (
id int primary key auto_increment , -- 学生唯一标识(主键),自增生成,避免重复,方便区分不同学生
name varchar (64), -- 学生姓名(采用张三、李四等常见化名,无真实指向)
classid int, -- 班级编号(如 1 代表初一 1 班、2 代表初一 2 班),用于按班级分组查询
chinese int, -- 学生语文成绩(分数范围 60-100 分,贴合初中生真实成绩)
math int , -- 学生数学成绩(分数范围 60-100 分,合理分布及格、中等、优秀成绩)
english int -- 学生英语成绩(分数范围 60-100 分,与语文、数学成绩搭配,适配分组统计)
);
# 插入数据
-- 插入10条学生数据,适配student_score_by_class表结构
-- classid说明:1=初一1班,2=初一2班,3=初一3班;成绩60-100分合理分布,适配分组查询
INSERT INTO student_score_by_class (name, classid, chinese, math, english)VALUES
-- 初一1班(classid=1)
('张三', 1, 85, 92, 88),
('李四', 1, 78, 85, 76),
('王五', 1, 91, 79, 82),
-- 初一2班(classid=2)
('赵六', 2, 88, 82, 86),
('孙七', 2, 68, 70, 65),
('周八', 2, 90, 88, 91),
-- 初一3班(classid=3)
('吴九', 3, 87, 85, 90),
('郑十', 3, 66, 68, 63),
('钱十一', 3, 89, 81, 87),
('冯十二', 3, 83, 87, 89);
-- ===================================
-- 数据查询:分组查询部分
-- ===================================
-- 查询学生成绩表的所有数据
select * from student_score_by_class;
-- 按照班级分组查询:每个班级的语文成绩总分
select classid, sum(chinese) as 语文总分 from student_score_by_class group by classid;
-- 按照班级分组查询:每个班级的平均语文成绩
select classid, avg(chinese) as 平均语文成绩 from student_score_by_class group by classid;
-- 按照班级分组查询:每个班级的平均科目总成绩(语文+数学+英语)
select classid, avg(chinese+math+english) as 平均三科总成绩 from student_score_by_class group by classid;
-- 按照班级分组查询:每个班级的三科总分(语文+数学+英语)
select classid, sum(chinese+math+english) as 三科总分 from student_score_by_class group by classid;
-- 测试插入:向student表插入一条测试数据
insert into student_score_by_class (name, classid, chinese, math, english)values('吕八', 3, 59, 33, 98);
-- 按照班级分组查询:每个班级的最低语文成绩
select classid, min(chinese) from student_score_by_class group by classid;
-- 按照班级分组查询:每个班级的最高语文成绩
select classid, max(chinese) from student_score_by_class group by classid;
-- 按照班级分组查询:每个班级的学生人数
select classid, count(classid) from student_score_by_class group by classid;
--或者
select classid, count(*) from student_score_by_class group by classid;
-- 当按照成绩分组查询时,统计到null值的记录不会被记录班级里
select classid, count(*) from student_score_by_class group by classid;
-- 测试插入:向student表插入一条测试数据,语文成绩为null,验证分组查询时是否统计到该记录
insert into student_score_by_class (name, classid, chinese, math, english)values('茅十八', 2,null, 33, 98);
--查看插入的测试数据
select * from student_score_by_class;
-- 按照班级分组查询:每个班级的学生人数,验证语文成绩为null的记录是否被统计到班级里
SELECT classid, COUNT(chinese) AS 统计语文考试学生人数 FROM student_score_by_class GROUP BY classid;

235

被折叠的 条评论
为什么被折叠?



