温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQL怎么分组查询数据

发布时间:2026-09-01 08:52:22 来源:亿速云 阅读:97 作者:小樊 栏目:编程语言

在 SQL 中,分组查询通常使用 GROUP BY 子句,配合聚合函数(如 COUNTSUMAVGMAXMIN)来按某些字段对数据进行分组统计。

下面从基础到常见用法给你讲清楚。


一、基本语法

SELECT1, 聚合函数(列2)
FROM 表名
WHERE 条件
GROUP BY1
ORDER BY1;

⚠️ 注意:

  • SELECT非聚合列必须出现在 GROUP BY
  • WHERE 在分组前过滤,HAVING 在分组后过滤

二、简单示例

1️⃣ 按部门统计人数

SELECT department, COUNT(*) AS 人数
FROM employee
GROUP BY department;

2️⃣ 按部门统计平均工资

SELECT department, AVG(salary) AS 平均工资
FROM employee
GROUP BY department;

三、带条件的分组

3️⃣ 先过滤再分组(WHERE)

SELECT department, COUNT(*) AS 人数
FROM employee
WHERE status = '在职'
GROUP BY department;

4️⃣ 分组后过滤(HAVING)

SELECT department, AVG(salary) AS 平均工资
FROM employee
GROUP BY department
HAVING AVG(salary) > 8000;

HAVING 可以用聚合函数
WHERE 不能用聚合函数


四、多字段分组

5️⃣ 按“部门 + 性别”分组

SELECT department, gender, COUNT(*) AS 人数
FROM employee
GROUP BY department, gender;

五、分组 + 排序

SELECT department, COUNT(*) AS 人数
FROM employee
GROUP BY department
ORDER BY 人数 DESC;

六、常见易错点 ❌

❌ 错误写法

SELECT name, COUNT(*) 
FROM employee
GROUP BY department;

✅ 正确写法(name 必须聚合或分组):

SELECT department, COUNT(*) 
FROM employee
GROUP BY department;

七、实战场景举例

  • 按天统计订单数
  • 按城市统计销售额
  • 按用户统计登录次数
  • 按类别统计商品数量

如果你有具体表结构或业务场景,可以直接发给我,我帮你写对应的 SQL ✅

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI