아래의 예제 테이블에서 'C'가 id 내에 존재하지 않는 모든 기호에 대해 id보다 많은 금액을 계산하는 방법을 찾으려고합니다. . 'C'마크가 ID에 존재할 때, 마크 'A'에 대한 금액을 제외한 해당 ID에 대한 총 금액을 원합니다. 예를 들어, 원하는 출력은 맨 아래에 있습니다. 파티션 및 EXISTS 명령 사용을 고려했지만 솔루션을 개념화하는 데 문제가 있습니다. 당신이 중 하나를 살펴보고 올바른 방향으로 날 지점 수 있다면, 그것은 크게 감상 할 수있다 :)다른 그룹이있는 경우 그룹의 레코드 제외 값
샘플 테이블 :
id mark amount
------------------
1 A 1
2 A 3
2 B 2
3 A 2
4 A 1
4 B 3
5 A 1
5 C 3
6 A 2
6 C 2
원하는 출력 :
id sum(amount)
-----------------
1 1
2 5
3 2
4 4
5 3
6 2
두 번째'sum'은 다음과 같이 읽어야합니다 :'sum (마커 <> 'A' 'then amount else 0 end)'('1' 대신에'amount'이어야합니다). –
@AndriyM 러쉬 실수. –
@Adrian, 답장을 보내 주셔서 감사합니다. 귀하의 솔루션을 구현 한 후에 나는 잘못된 질문을 한 것을 깨달았습니다! 이 솔루션은 내가 요청한 것을 정확하게 수행하지만, 내가 무엇을 요구했는지는 내가 필요한 것이 아니다 :). 만약 당신이 다른 것을 시도 할 마음이 있다면, 나는 [link] (http://stackoverflow.com/questions/13169830/exclude-value-of-a-record-in)에서 실제 요구 사항을 가지고 새로운 질문을 던졌습니다. -a-group-if-another-is-present-v2) –