我正在制定一个MySQL查询,尝试汇总一个COUNT。
数据看起来像这样……表是“工人”
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;
关于mysql - 在MySQL中聚合一个简单的COUNT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50958647/