示例
示例
SELECT city,
COUNT(*) AS user_cnt,
ROUND(AVG(age), 1) AS avg_age
FROM users
GROUP BY city
ORDER BY user_cnt DESC;| 语义 | 相同分组键合并为一行,聚合按组计算 |
|---|---|
| 约束 | 非聚合列必须出现在 GROUP BY 中 |
| NULL | 分组键为 NULL 的行归为一组 |
按列值分组后对每组计算聚合:SELECT 列表里只能出现分组列与聚合表达式,这是标准与两库默认强制的约束。
SELECT city,
COUNT(*) AS user_cnt,
ROUND(AVG(age), 1) AS avg_age
FROM users
GROUP BY city
ORDER BY user_cnt DESC;| 语义 | 相同分组键合并为一行,聚合按组计算 |
|---|---|
| 约束 | 非聚合列必须出现在 GROUP BY 中 |
| NULL | 分组键为 NULL 的行归为一组 |