首页/数据/SQL 速查/GROUP BY 列序号
聚合与窗口函数54 条

GROUP BY 列序号

MySQL 与 PostgreSQL 都允许 GROUP BY 1 这类列序号写法:简短但可读性差,改 SELECT 顺序时容易改错。

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

示例

示例
SELECT city, COUNT(*)
FROM users
GROUP BY 1
ORDER BY 2 DESC;
支持MySQL、PostgreSQL 均支持按位置分组/排序
风险SELECT 列顺序调整后序号含义变化
规范长期 SQL 建议写列名或别名

易错点

  • 在 SELECT 前面插入一列后,GROUP BY 1 的含义悄然改变,评审时重点检查
  • PostgreSQL 中 GROUP BY 序号指向输出列,与 ORDER BY 序号规则一致,但两者都可被列名替代

数据来源与参考

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