在 SQL 中,“统计分组数量”通常有两种理解,下面分别说明:
这是最常见的情况,使用 GROUP BY + COUNT()。
SELECT dept_id, COUNT(*) AS emp_count
FROM employee
GROUP BY dept_id;
✅ 含义:按 dept_id 分组,统计每个部门的员工数量。
也就是:分组之后,组的数量是多少。
SELECT COUNT(*) AS group_count
FROM (
SELECT dept_id
FROM employee
GROUP BY dept_id
) t;
SELECT COUNT(DISTINCT dept_id) AS group_count
FROM employee;
⚠️ 注意:如果分组字段可能有 NULL,COUNT(DISTINCT) 不统计 NULL。
SELECT dept_id, COUNT(*)
FROM employee
WHERE salary > 5000
GROUP BY dept_id;
SELECT dept_id, COUNT(*) AS cnt
FROM employee
GROUP BY dept_id
HAVING COUNT(*) > 10;
SELECT dept_id, job, COUNT(*)
FROM employee
GROUP BY dept_id, job;
如果你有具体的表结构或业务场景(比如“统计每个用户下单次数大于 3 的次数”),可以直接发出来,我可以帮你写精确 SQL。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。