基本上我正在使用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
但它显示了一个地区的员工人数。我如何对他们进行分组并获得某个地区的员工人数?
小提琴
答案 0 :(得分:2)
您是否考虑过使用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
答案 1 :(得分:1)
您应该按地区使用
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