인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

shy421님의 프로필 이미지
shy421

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

CASE를 활용한 테이블 피봇(난이도 상)

CASE 문의 AVG() 문의

작성

·

768

0

안녕하세요~

AVG(CASE WHEN categoryid=1 THEN price ELSE NULL END)

CASE WHEN categoryid=1 THEN AVG(price) ELSE NULL END

두 case 문의 차이가 뭔지 알 수 있을까요?

 

답변 2

0

shy421님의 프로필 이미지
shy421
질문자

SELECT CASE WHEN CategoryID='1' THEN Price

                  WHEN CategoryID='2' THEN Price

                   END

FROM Products

 

만약 이렇게 다중 CASE 문을 사용할때 아래 쿼리문을 사용하지 못한다면 어떻게 사용해야할까요?

 

SELECT CASE WHEN CategoryID='1' THEN sum(Price)

                  WHEN CategoryID='2' THEN sum(Price)

                   END

FROM Products

데이터리안님의 프로필 이미지
데이터리안
지식공유자

안녕하세요 shy 421님,
해당 쿼리로 확인하고 싶은 값이 각 카테고리 아이디별 가격 합계이신걸까요?
그렇다면 CategoryID를 기준으로 집계하여 Sum(Price)를 연산하시면 됩니다.

 

SELECT  CategoryID, CUM(Price)

FROM Products

GROUP BY CategoryID

0

이보민님의 프로필 이미지
이보민
지식공유자

안녕하세요 shy421님

해당 이슈에 대해 레퍼런스 찾아보았으나 2번째로 적어주신 코드에 대해서는 비슷한 용례나 관련 설명을 찾지 못했습니다. 아마 해당 플랫폼의 SQL 인터프리터 버그일 것으로 생각됩니다.

첫번째로 기재해주신 AVG(CASE) 퀴리가 특정 조건 내의 데이터 집계 방식에 대한 올바른 방법이며, 두번째와 같은 쿼리는 사용하지 않는 것이 맞습니다.

질문주셔서 감사합니다. 궁금증이 해결되셨길 바랍니다~

shy421님의 프로필 이미지
shy421

작성한 질문수

질문하기