我有一个如下表格结构:
我正在尝试编写一个查询,以使用dept_id显示一个部门的总员工,如下所示:
使用来自另一个表的连接获取类别名称: 类别表包含以下字段:
id | Cat_Name
我正在尝试使用Group by
来做同样的事情以下是我对MySQL查询的尝试:(目前我没有使用连接,因为我知道我可以稍后使用连接来获取类别名称。)
我关注如何以上面显示的格式获取数据。
dept_data
WHERE dept_id = 1 GROUP BY year dept_data
WHERE dept_id = 1 GROUP BY year,category_id 任何可以帮助我的人?
由于
答案 0 :(得分:1)
就像Shaharyar在评论中写道的那样,它被称为“支点”。
您需要一个条件聚合:
SELECT year AS Year,
MAX(CASE WHEN category_id = 1 THEN total_employees END) AS `Category 1 (Name)`,
MAX(CASE WHEN category_id = 2 THEN total_employees END) AS `Category 2 (Name)`
FROM dept_data
WHERE dept_id = 1
GROUP BY year
答案 1 :(得分:0)
最后,我想出了一个能够满足我需要的查询。
感谢Paul Spiegel。
它实际上只是保罗·斯皮格尔答案的修改版本。
SELECT year AS Year,
MAX(IF(category_id = 1, total_employees, NULL)) AS Category1,
MAX(IF(category_id = 2, total_employees, NULL)) AS Category2
FROM dept_data WHERE dept_id = 1 GROUP BY year
我希望它也可以帮助别人。