[SQL] 두 개의 서로 다른 곳 조항과 두 데이터 집합을 반환해야
SQL두 개의 서로 다른 곳 조항과 두 데이터 집합을 반환해야
나는 거래를 추적 테이블이있다.
표는 설정이다 :
transactions:
id, account_id, budget_id, points, type
나는 점의 각 budget_id의 합계를 반환해야 어디 유형 = '할당'포인트의 합이 어디 유형 = '문제'
나는 있지만 둘 다 하나 개의 쿼리에서 각 작업을 수행하는 방법을 알고있다.
예상되는 결과 집합 :
budget_id allocated issued
434 200000 100
242 100000 5020
621 45000 3940
해결법
-
==============================
1.
SELECT budget_id, SUM(IF(type = 'allocation', points, 0)) AS allocated, SUM(IF(type = 'issue', points, 0)) AS issued FROM transactions GROUP BY budget_id
-
==============================
2.
select budget_ID, sum(case when type = 'allocated' then points else 0 end) as allocated, sum(case when type = 'issued' then points else 0 end) as issued ..rest of your query... group by budget_ID
케이스는 특정 조건이 충족되는 경우에만 요약 할 수 있습니다.
from https://stackoverflow.com/questions/25254091/need-to-return-two-sets-of-data-with-two-different-where-clauses by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] "LIKE"및 SQL의 "IN"의 조합이 있습니까? (0) | 2020.03.10 |
---|---|
[SQL] 내가 사용해야! = 또는 <> T-SQL에서 동일하지 하시나요? (0) | 2020.03.10 |
[SQL] 어떻게 MySQL의에서 CONCATENATE 문자열에 GROUP BY를 사용 하는가? (0) | 2020.03.10 |
[SQL] NULL에 있지 <동일>! = 연산자 (0) | 2020.03.10 |
[SQL] 어떻게 쿼리 PostgreSQL의 '그룹화'의 문자열 필드의 CONCATENATE 문자열에? (0) | 2020.03.10 |