我有一個數據庫與學生信息和學校成績。然後,我試圖查詢顯示關鍵績效指標的結果集,以反映我們在學校中不同的學生子羣體。最終結果的一個非常粗略的例子是: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沒有回答,它可能會達到我想要的。 –