我正在制定一个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/

10-11 02:45