基本上,我正在使用 HighCharts 柱形图上的仪表板来表示一个地区的员 worker 数,当我单击该地区的列时,它应该向下钻取并显示该地区所有地区的员 worker 数。员工表连接到区表,区表连接到区域表。

mysql - 查询地区和地区的员 worker 数统计-LMLPHP

我尝试了以下查询

SELECT ad.DISTRICT_NAME, COUNT(me.district_id), r.REGION_NAME, COUNT(me.district_id)
FROM `master_employee` me
INNER JOIN app_district ad ON me.`district_id` = ad.`DISTRICT_UID`
INNER JOIN region r ON ad.REGION_UID = r.REGION_UID
GROUP BY me.district_id, ad.REGION_UID

但它显示了一个地区的雇员人数。如何对它们进行分组并获得某个地区的员 worker 数?

fiddle

http://www.sqlfiddle.com/#!9/ec468c/1

最佳答案

您是否考虑过使用 GROUP BY WITH ROLLUP 为每个区域提供一个额外的行,其中区域名称将为 NULL 并且计数将是该区域的区域级别计数的汇总?

这个 SQL 应该让你按照我的思路指出正确的方向。我玩过你的 fiddle ,它似乎接近你的要求:

SELECT r.Region_Name
     , ad.District_Name
     , Count(me.employee_id)
  FROM `master_employee` me
 INNER JOIN app_district ad
         ON me.`district_id` = ad.`DISTRICT_UID`
 INNER JOIN region r
         ON ad.REGION_UID = r.REGION_UID
 GROUP BY ad.REGION_UID, ad.District_Name WITH ROLLUP

关于mysql - 查询地区和地区的员 worker 数统计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36226966/

10-12 15:12