2015-09-07 78 views
0

我正在尝试编写一个查询来计算每个“类型”的提交数量,然后按“类型”对其进行分组,然后按“FacultyName”对其进行分组。 有4种类型:书籍,书籍章节,期刊文章和会议。 共有5位教师姓名:CLM,EBE,健康科学,人文科学。 在“提交”表中找到“类型”,并在“教师”表中找到“教师名称”。多个计数和两个分组

我重视我的查询应产生什么样的一个模拟报告的屏幕: https://www.dropbox.com/s/6p4xvq1u15no6vy/Mock.PNG?dl=0

这是我得到的最接近,我现在想加入这两个查询并将它按类型分组。所有五个院系将共同具有4种类型,它只是计数,这将是不同的:

SELECT Type, COUNT(Type) AS [Number of Submissions] 
FROM Submission 
GROUP BY Type 

SELECT Faculty.FacultyName 
FROM Faculty 
GROUP BY FacultyName 

这是输出:(对不起,我没有足够的积分上传图片)

https://www.dropbox.com/s/hrst3dd9399w8y2/Output.PNG?dl=0

+1

您正在使用哪些DBMS? Postgres的?甲骨文?同样'从提交,教师'创建一个[交叉连接](https://en.wikipedia.org/wiki/Join_%28SQL%29#Cross_join)(笛卡尔产品)之间的两个表。那真的是你打算做的吗?如果您应该使用明确的'JOIN'子句来避免这种错误。使用Windows Azure的 –

+0

。我对SQL很陌生,所以我不完全确定哪个子句最理想 –

回答

0

您的报告显示,其可以在SQL转换为每教员种类数量:

SELECT f.faculty,s.type,count(*) as nbr 
    FROM Submission s, 
     Faculty f 
WHERE --you probably need to join Submission and Faculty here 
     --for example 
     --s.id = f.id 
GROUP BY f.faculty,s.type 

请确保您有正确的Ĵ oin在两个表之间(或者根据需要添加关系表)。

现在您将拥有3个图形属性,将Faculty和Type设置为分组轴和Nbr作为数据集。