首先,我想不出更好的问题标题。为此道歉。SQL汇总 - 多次防止总结记录
所以,我正在写一个查询,这里是一些(我认为)它会返回没有聚合函数和group by。我用这作为一个例子,实际的查询中含得更多领域:
SUBJ CLASSROOM CLASSROOM_CAPACITY
A 1 25
B 2 50
C 3 60
A 2 50
A 1 25 <--Not actually duplicate
现在你会说有重复的记录。但事实上,它们不是以一种额外的字段(这里没有显示)的方式重复的,对于那些看似重复的记录,它们会有不同的值。
我想要什么:
SUBJ CLASSROOM CLASSROOM_CAPACITY
A 1 25
2 50
TOTAL 75
B 2 50
TOTAL 50
C 3 60
TOTAL 60
//EDIT - Apparently following line is causing too much confusion. Ignore it. How can I get rest of the table correctly?
TOTAL 135 //It seems its quite difficult to get 135 here. Its ok if this total is messed up
我试图:
SELECT
SOME_FIELDS,
SUBJ,
CLASSROOM,
SUM(CLASSROOM_CAPACITY)
FROM
MYTABLE
WHERE .....
GROUP BY SOME_FIELDS, ROLLUP(SUBJ,CLASSROOM)
问题:
感谢那些 “看似重复” 记录,课堂容量正在总结了多次。我如何防止这种情况发生?我这样做是错误的吗?
实际的查询很复杂,但我认为如果我可以得到这个权利,我可以将它应用于更大的查询。
PS:我知道如何使用GROUPING
获得文本“Total”而不是空格输入ROLLUP
,因此您可以跳过该部分。
你如何获得总计135?你总结什么样的价值观,你排除了什么样的价值观?你怎么知道要包含哪些值? –
我不明白。我想要得到它。所列课程的所有教室的课堂容量总和为25 + 50 + 60。但这并不重要。我想至少其他总数是正确的 – tumchaaditya
我知道这是一个坏榜样。但是这是我能想到的最好的.. – tumchaaditya