인프런 커뮤니티 질문&답변
case avg 관련 쿼리 오류
작성
·
444
·
수정됨
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 함수를 사용할 때 WHEN과 THEN 사이에 공백이 누락되어 있는 것 같습니다.
올바른 쿼리는 다음과 같이 작성되어야 합니다.
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
문법 오류를 확인한 후에도 작동이 안되는 경우에는 다음과 같은 사항들을 먼저 확인해보시는 것이 좋습니다.
- 테이블 이름 (
Products)이 올바른지 확인하세요.
- 필드 이름 (
CategoryID,PRICE)이 올바른지 확인하세요.
- 쿼리를 실행할 데이터베이스에 접속되어 있는지 확인하세요.
- 데이터베이스 사용자에게 쿼리 실행 권한이 있는지 확인하세요.
위의 사항들을 확인하시고 문제가 지속된다면 세부적인 오류 메시지나 추가 정보를 제공해주시면 더 도움을 드릴 수 있을 것 같습니다.
감사합니다.





