다음 결과 세트 사용 :
side|timestamp_ms|sum |
----|------------|-----|
blue| 135| 1000|
red | 135| 1100|
blue| 1943| 2500|
red | 1943| 2900|
timestamp_ms를 공유하는 파란색과 빨간색면의 합계 차이를 어떻게 계산할 수 있습니까?
이상적으로 새 결과 집합은 다음과 같아야합니다.
timestamp_ms|diff |
------------|-----|
135| -100|
1943| -400|
한 가지 방법은 다음과 join
같습니다.
select tb.timestamp_ms, tb.sum - tr.sum
from t tr join
t tb
on tr.timestamp_ms = tb.timestamp_ms
where tr.side = 'red' and tb.side = 'blue';
또 다른 방법은 조건부 집계입니다.
select timestamp_ms,
(sum(t.sum) filter (where t.side = 'blue') -
sum(t.sum) filter (where t.side = 'red')
)
from t
group by timestamp_ms
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다