강의로 돌아가기
신현우

위 코드는 되고 아래코드는 안되는 이유를 아시는분

SELECT 
    CONCAT(QUARTER(DIFFERENTIATION_DATE),'Q') AS QUARTER, 
    COUNT(*) AS ECOLI_COUNT
FROM 
    ECOLI_DATA
GROUP BY 
    QUARTER
ORDER BY 
    QUARTER; 
SELECT 
    CONCAT(QUARTER(DIFFERENTIATION_DATE),'Q') AS QUARTER, 
    COUNT(*) AS ECOLI_COUNT
FROM 
    ECOLI_DATA
GROUP BY 
    QUARTER(DIFFERENTIATION_DATE)
ORDER BY 
    QUARTER(DIFFERENTIATION_DATE);
2 개의 답변
이은학

GROUP BY 절에서 선택되지 않은 열이 SELECT 목록에 있을 때 발생하는 오류라고 합니다.

GROUP BY 결과는 1, 2, 3, 4인데,
SELECT에서는 '1Q', '2Q', '3Q', '4Q'를 찾고 있기 때문이 아닐까 싶습니다.

Son-Sumin

GROUP BY 에 쓰이는 식과 SELECT에 쓰이는 식이 같아야 합니다.
두 번째 코드 내용을 아래 처럼 바꾸시면 됩니다.
SELECT
CONCAT(QUARTER(DIFFERENTIATIONDATE),'Q') AS QUARTER,
COUNT(*) AS ECOLI
COUNT
FROM
ECOLIDATA
GROUP BY
CONCAT(QUARTER(DIFFERENTIATION
DATE),'Q')
ORDER BY
CONCAT(QUARTER(DIFFERENTIATION_DATE),'Q');

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.