mysql - 在 MySQL 中聚合一个简单的 COUNT
问题描述
我正在制定一个试图聚合 COUNT 的 MySQL 查询。数据看起来像这样......表是“工人”
NAME DPT
----- ----
CLARK 10
JAMES 10
ALLEN 10
ADAMS 20
WU 20
MARTIN 30
FITZ 30
SCHMIDT 30
MILLER 30
我需要在部门中列出这样的表格
NAME DPT CNT
----- ---- ---
CLARK 10 3
JAMES 10 3
ALLEN 10 3
ADAMS 20 2
WU 20 2
MARTIN 30 4
FITZ 30 4
SCHMIDT 30 4
MILLER 30 4
我试过这个...
SELECT DISTINCT(NAME), DPT, COUNT(DPT) as CNT FROM workers GROUP BY DPT;
没有成功。很确定这很简单,但我很难过。关于我哪里出错的任何想法?- JW
解决方案
由于计数聚合在DPT
字段上,因此您只需要为此创建一个子查询,然后与workers
表连接以获取名称。
SELECT w.NAME, w.DPT, tot.CNT
FROM workers AS w JOIN (SELECT DPT, COUNT(1) AS CNT FROM workers GROUP BY DPT) AS tot ON w.DPT = tot.DPT
ORDER BY w.DPT, w.NAME;
推荐阅读
- python - Turtle 图形中的笔是可以交互的对象吗?
- python - Django Python | 同时返回 Render(request) 和 HTTP Reponse?
- javascript - 为什么只有当我将数据放入行函数时才绘制 d3 线?
- mysql - 使用“--skip-slave-start”启动 mysql 复制服务器
- mysql - SQL:在单个查询中添加多个 where 子句
- php - php laravel 5中的Swagger注释错误500
- python - 预期条件 WebDriverWait Python Selenium 问题
- linux - 在 ARM 机器上单步执行的问题
- javascript - 如果未登录 Flask,则防止用户直接访问 url 并重定向到登录
- python-3.x - Kaggle 登录并解压缩文件以存储在 s3 存储桶中