对于仪表板,我需要创建一个数据透视表,向我显示职位空缺使用的总权限。因此我需要:
我有第一个问题:
SELECT vacancytemplate_id, count(id)
FROM vacancies
group by vacancytemplate_id;
第二个问题也不难,但我不知道正确的解决方案是什么。我真是个脑袋。我的头脑无法理解如何实现下一步并将其放入查询中。请陌生人,帮助我:))
编辑:我想要的结果是这样的
NameOfComp, NrOfTimesUsed
Leading, 17
Inspiring, 2
EDIT2:它应该是一个元查询:
SELECT NameOfComp, (count of the competences used by templates) * (number of vacancies per template)
EDIT3:http://sqlfiddle.com/#!9/2773ca SQLFiddle
非常感谢!
答案 0 :(得分:1)
如果我正确理解您的请求,您需要计算每个空缺的权限。由于您的表结构,这可以非常简单地完成:
Select v.ID, count(*) from vacancy as v inner join CompTemplate_Table as CT
on v.Template_ID = CT.Template_ID group by v.ID;
您只能进行一次连接的原因是因为每个模板中的每个能力都会在CompTemplate_Table中有一条记录。此外,使用相同的键将空格连接到模板,就像用于将模板连接到CompTemplate_Table一样,因此它们表示相同的键值(如果您不需要数据,则可以跳过加入模板表)。
如果您想将此数据添加到数据透视表,我会将此练习留给您。如果您进行快速谷歌搜索,可以使用许多教程,它应该不那么难。
更新:对于第二个查询,您正在查看类似的内容:
Select cp.NameOfComp, count(*) from vacancy as v inner join CompTemplate_Table as CT
on v.Template_ID = CT.Template_ID inner join competencies as CP
on CP.ID = CT.Comp_ID
group by CP.NameOfComp
这里的不同之处在于您要在comptetencies表中添加,因为您需要来自该数据的数据,并通过CP.NameOfComp而不是空缺ID进行分组。您还可以通过添加搜索条件(例如,CP.ID = 12345)来将此限制为特定模板,能力或职位空缺