반응형
Oracle SQL의 조건부 SUM
저는 다음과 같은 방법으로 데이터를 가지고 있습니다.
ITEM LOCATION UNIT RETAIL QUANTITY
100 KS 10 -10
200 KS 20 30
양의 합(수량 > 0)과 음의 합(수량 < 0)을 원합니다.
조건에 따라 그 컬럼 합계를 어떻게 구합니까?
사용가능SUM(CASE ... )
:
SELECT item, location,
SUM(CASE WHEN quantity > 0 THEN quantity ELSE 0 END) AS positive_sum,
SUM(CASE WHEN quantity < 0 THEN quantity ELSE 0 END) AS negative_sum
FROM your_table
GROUP BY item, location;
사용가능GREATEST
그리고.LEAST
와 함께SUM
함수:
Oracle 11g R2 스키마 설정:
CREATE TABLE table_name ( ITEM, LOCATION, QUANTITY ) AS
SELECT 100, 'KS', -10 FROM DUAL
UNION ALL SELECT 100, 'KS', -10 FROM DUAL
UNION ALL SELECT 100, 'KS', -20 FROM DUAL
UNION ALL SELECT 100, 'KS', 10 FROM DUAL
UNION ALL SELECT 100, 'KS', 5 FROM DUAL
UNION ALL SELECT 200, 'KS', 10 FROM DUAL
UNION ALL SELECT 200, 'KS', 20 FROM DUAL
UNION ALL SELECT 200, 'KS', 5 FROM DUAL
쿼리 1:
SELECT item,
location,
SUM( GREATEST( quantity, 0 ) ) AS positive_quantities,
SUM( LEAST( quantity, 0 ) ) AS negative_quantities
FROM table_name
GROUP BY item, location
결과:
| ITEM | LOCATION | POSITIVE_QUANTITIES | NEGATIVE_QUANTITIES |
|------|----------|---------------------|---------------------|
| 100 | KS | 15 | -40 |
| 200 | KS | 35 | 0 |
언급URL : https://stackoverflow.com/questions/33234844/conditional-sum-on-oracle-sql
반응형
'it-source' 카테고리의 다른 글
중복 행 선택(거의) (0) | 2023.09.13 |
---|---|
xml.etree를 사용합니다.요소형식이 양호한 xml 파일을 인쇄할 트리 (0) | 2023.09.13 |
jQuery, 단순 폴링 예제 (0) | 2023.09.13 |
JAXB: XML 문서를 삭제하지 않는 동안 네임스페이스를 무시하는 방법은 무엇입니까? (0) | 2023.09.13 |
스프링-부트가 1 대 다 연관된 무한 루프 (0) | 2023.09.13 |