첫째, 더 나은 질문 제목을 생각할 수 없습니다. 그 사과.SQL 롤업 - 여러 번 레코드 합계를 방지하십시오.
그래서 저는 쿼리를 작성 중이며 여기에 함수와 그룹을 집계하지 않고 리턴 할 것이라고 생각합니다. 예를 들어 이것을 사용하고 있으며 실제 검색어에 더 많은 필드가 포함되어 있습니다.
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)
: 사람들에게
덕분에 "겉으로 중복은"기록, 교실 용량이 여러 번 요약되고있다. 어떻게 방지 할 수 있습니까? 내가 잘못하고있는거야?
실제 쿼리는 더 복잡합니다.하지만이 쿼리를 올바르게 만들 수 있다면 더 큰 쿼리에 적용 할 수 있다고 생각합니다.
추신 : ROLLUP
을 사용하여 빈 항목 대신 "전체"텍스트를 가져 오는 방법을 알고 있으므로 해당 부분을 건너 뛸 수 있습니다.
가 어떻게 135의 총합계를받을 수 있나요을? 어떤 가치관을 합산하고 그것을 얻기 위해 어떤 가치를 배제하고 있습니까? 포함 할 값을 어떻게 알 수 있습니까? –
나는 그것을 얻지 못하고있다. 나는 그것을 얻고 싶다. 25 + 50 + 60 명에 해당하는 모든 교실의 강의실 용량 합계. 그러나 그것은 중요하지 않습니다. 나는 적어도 다른 합계가 맞기를 바란다. – tumchaaditya
나는 그것이 나쁜 예라는 것을 안다. 하지만 내가 생각해 낼 수있는 최선의 .. – tumchaaditya