首页/数据/SQL 速查/多列分组
聚合与窗口函数54 条

多列分组

GROUP BY 多列时按列组合分组:结果行数等于组合数;顺序影响中间排序但结果集一致。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT city, status,
       COUNT(*) AS cnt
FROM users
GROUP BY city, status
ORDER BY city, status;
粒度分组键的组合
等价GROUP BY city, status 与 GROUP BY status, city 结果集相同
索引复合索引按最左前缀匹配分组列可减少排序

易错点

  • 多列分组的结果行数可能远超预期,先估算组合数再上线报表
  • 分组列顺序与索引列顺序不一致时排序成本上升,关注执行计划

数据来源与参考

  • MySQL 8.0 Reference Manual · GROUP BY
  • PostgreSQL Documentation · GROUP BY
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌