繁体   English   中英

查询区域和地区员工人数

[英]Query for counting number of employees in district and region

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

在此输入图像描述

我尝试了以下查询

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 

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

小提琴

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

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

这个SQL应该让我指出正确的方向与我的思路。 我玩你的小提琴,似乎接近你的要求:

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 

您应该按地区使用分组

 SELECT  r.REGION_NAME, COUNT(*) as number_of_employee
 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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM