[SQL] SQL 쿼리에 대한 피벗 CASE WHEN를 사용하여 열을
SQLSQL 쿼리에 대한 피벗 CASE WHEN를 사용하여 열을
나는 다음과 같은 테이블이 있습니다 :
Bank:
name val amount
John 1 2000
Peter 1 1999
Peter 2 1854
John 2 1888
나는 다음과 같은 결과를 제공하는 SQL 쿼리를 작성하는 것을 시도하고있다 :
name amountVal1 amountVal2
John 2000 1888
Peter 1999 1854
지금까지 나는이있다 :
SELECT name,
CASE WHEN val = 1 THEN amount ELSE 0 END AS amountVal1,
CASE WHEN val = 2 THEN amount ELSE 0 END AS amountVal2
FROM bank
그러나, 약간 잘못된 결과를 제공합니다 :
name amountVal1 amountVal2
John 2000 0
Peter 1999 0
John 0 1888
Peter 0 1854
어떻게 올바른 프레젠테이션을 내 쿼리를 수정할 수 있습니까? 감사
해결법
-
==============================
1.
SELECT name, SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1, SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2 FROM bank GROUP BY name
-
==============================
2.당신 같은 외모 자체에 테이블에 가입해야합니다. 이 시도:
당신 같은 외모 자체에 테이블에 가입해야합니다. 이 시도:
select bank1.name, bank1.amount, bank2.amount from bank bank1 inner join bank bank2 on bank1.name = bank2.name and bank1.val = 1 and bank2.val = 2
from https://stackoverflow.com/questions/5846007/sql-query-to-pivot-a-column-using-case-when by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 테이블 필드는 하이픈을 포함 할 수 있습니까? (0) | 2020.04.05 |
---|---|
[SQL] 뷰에서 사용 변경 PostgreSQL의 열 (0) | 2020.04.05 |
[SQL] 안전하게 이름 바꾸기 테이블 일련 기본 키 열을 사용하여 (0) | 2020.04.05 |
[SQL] 쿼리를 제외하고 사용하는 경우 오류 (0) | 2020.04.05 |
[SQL] SUM에 의해 MySQL의 그룹 (0) | 2020.04.05 |