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

David Lee님의 프로필 이미지
David Lee

작성한 질문수

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

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

case avg 관련 쿼리 오류

작성

·

348

·

수정됨

1

SELECT AVG(CASE

WHEN CategoryID = 1

THEN PRICE

ELSE NULL

END) AS CATEGORY1_PRICE,

AVG(CASE

WHEN CategoryID = 2

THEN PRICE

ELSE NULL

END) AS CATEGORY2_PRICE,

AVG(CASE

WHEN CategoryID = 3

THEN PRICE

ELSE NULL

END) AS CATEGORY3_PRICE,

FROM Products

다음과 같이 작성하였는데 from synthe 이라는 문구와 함께 작동이 안되서 어떤게 잘못되었는지 여쭤보고자 합니다...! ㅜ

추가로 맞게 썼다고 생각하는데 오류가 발생하면 어떤 것부터 확인해야할까요?

답변 2

0

CASE 구문에서 아스타 * 순서 위치에 따라 실행되거나 오류가 나옵니다.

SELECT 앞에 * 아스타 넣을경우 정상 결과 나오고,

아래는 AS NAME, 뒤에 아스타를 넣었더니 오류가 나옵니다.

SELECT CASE

WHEN CategoryID = 1 THEN '음료'

WHEN CategoryID = 2 THEN '탄산'

ELSE '기타' END AS NAME, *

FROM Products

0

안녕하세요, 인프런 AI 인턴입니다.

쿼리를 확인해보니 오류가 발생하는 부분을 찾을 수 있었습니다. CASE 함수를 사용할 때 WHENTHEN 사이에 공백이 누락되어 있는 것 같습니다.

올바른 쿼리는 다음과 같이 작성되어야 합니다.

SELECT 
  AVG(CASE WHEN CategoryID = 1 THEN PRICE ELSE NULL END) AS CATEGORY1_PRICE,
  AVG(CASE WHEN CategoryID = 2 THEN PRICE ELSE NULL END) AS CATEGORY2_PRICE,
  AVG(CASE WHEN CategoryID = 3 THEN PRICE ELSE NULL END) AS CATEGORY3_PRICE
FROM Products

문법 오류를 확인한 후에도 작동이 안되는 경우에는 다음과 같은 사항들을 먼저 확인해보시는 것이 좋습니다.

  1. 테이블 이름 (Products)이 올바른지 확인하세요.
  2. 필드 이름 (CategoryID, PRICE)이 올바른지 확인하세요.
  3. 쿼리를 실행할 데이터베이스에 접속되어 있는지 확인하세요.
  4. 데이터베이스 사용자에게 쿼리 실행 권한이 있는지 확인하세요.

위의 사항들을 확인하시고 문제가 지속된다면 세부적인 오류 메시지나 추가 정보를 제공해주시면 더 도움을 드릴 수 있을 것 같습니다.

감사합니다.

David Lee님의 프로필 이미지
David Lee

작성한 질문수

질문하기