温馨提示×

温馨提示×

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

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

group by怎么分组

发布时间:2026-09-16 10:16:11 来源:亿速云 阅读:103 作者:小樊 栏目:数据库

GROUP BY 是 SQL 中用来按某些列的值进行分组的语句,常配合聚合函数(如 COUNT、SUM、AVG 等)使用。


一、基本语法

SELECT 列1, 聚合函数(列2)
FROM 表名
GROUP BY 列1;

含义:
把 列1 值相同的行分成一组,然后对每个组做统计。


二、简单示例

示例表:orders

id user amount
1 A 100
2 B 200
3 A 150
4 B 50

按用户分组,统计订单数

SELECT user, COUNT(*) AS order_count
FROM orders
GROUP BY user;

结果:

user order_count
A 2
B 2

三、按多列分组

SELECT user, status, COUNT(*)
FROM orders
GROUP BY user, status;

规则:
user 和 status 都相同的行才会被分到同一组。


四、常见搭配函数

  • COUNT():计数
  • SUM():求和
  • AVG():平均值
  • MAX() / MIN():最大 / 最小值

示例:

SELECT user, SUM(amount) AS total
FROM orders
GROUP BY user;

五、分组后过滤:HAVING

WHERE 不能用于分组后的条件,要用 HAVING

SELECT user, SUM(amount) AS total
FROM orders
GROUP BY user
HAVING SUM(amount) > 200;

六、常见错误

❌ 错误:

SELECT user, amount
FROM orders
GROUP BY user;

(非聚合列 amount 不能单独出现在 SELECT)

✅ 正确:

SELECT user, SUM(amount)
FROM orders
GROUP BY user;

如果你用的是 MySQL / PostgreSQL / SQL Server / Oracle,或者想结合具体业务场景(比如按天、按地区分组),可以告诉我,我给你写具体 SQL。

向AI问一下细节

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

AI
助
手