我有一个数据库与学生信息和学校成绩。然后,我试图查询显示关键绩效指标的结果集,以反映我们在学校中不同的学生子群体。最终结果的一个非常粗略的例子是:T-SQL - 更好的替代联盟所有的分组分析
例表我想创建
注意到,学生群体有重叠。
同样的学生可以被包含在Whole Year
,Females
和Non FSM
等:
现在我已经实现了这一点。我已经为每个子组使用了聚合函数和GROUP BY子句,然后使用UNION ALL将这些查询组合起来创建表。我的代码的一个粗略的例子是:
SELECT 'Whole Year' AS [Group], COUNT(student.name) AS [Total No. of Students]
UNION ALL
SELECT student.gender AS [Group], COUNT(student.name) AS [Total No. of Students]
GROUP BY student.gender
UNION ALL
SELECT student.fsm AS [Group], COUNT(student.name) AS [Total No. of Students]
GROUP BY student.fsm
问题是,我需要为许多关键性能指标和许多子组做这个。用我目前的解决方案,我的代码非常庞大,而且不易管理。
我猜测可能有一个更优雅的解决方案,所以如果任何人都可以指出我在正确的方向,我将非常感激。
很难说如果没有看到所有的代码,但如果你阅读总结数据'累积'读它可能是你要找的: https://technet.microsoft.com/ en-us/library/ms189305(v = sql.90).aspx – MightyRearranger
列是动态的,基于“学校成绩”中的条目数量? (即%与C +,B +,A + ...等)? –
MightRearranger感谢您的链接。在阅读了我和CUBE运营商一起玩的文章后,如果strickt01没有回答,它可能会达到我想要的。 –