728x90
반응형
카테고리별 상품 개수 구하기
SELECT CASE WHEN PRODUCNT_ID IN (1,2) THEN 'A1',
WHEN PRODUCNT_ID IN (3,4) THEN 'C3',
ELSE 'K1' END AS CATEGORY,
COUNT(*) AS PRODUCT
FROM PRODUCT
GROUP BY PRODUCT_ID
ORDER BY PRODUCT_ID;
- 이번에는 뭐가 문제인걸까
- when절은 , 를 하지도 않음
- 그룹바이가 문제임. -> 그룹바이도 id가 아니라 category인데 그렇게 하면, alias를 쓰는 거라
- select 절보다 실행이 빠른 group by에서 안 됨.
- 다른 분들 답 보니깐, substring()이랑 left()를 많이 사용하셨음.
- substring(칼럼명, 시작 지점, 출력개수)
- order by만 바꿨더니 또 안 됨..
SELECT CASE WHEN PRODUCT_ID IN (1,2) THEN 'A1'
WHEN PRODUCT_ID IN (3,4) THEN 'C3'
ELSE 'K1' END AS CATEGORY,
COUNT(*) AS PRODUCT
FROM PRODUCT
GROUP BY SUBSTRING(PRODUCT_CODE, 1, 2)
ORDER BY category;
- 그룹바이랑 오더바이만 같으면 안되고, 셀렉트까지.. 같아야 되는듯
=> ? 솔직히 이해가 안 감. 별개가 아님..?
SELECT SUBSTRING(PRODUCT_CODE, 1, 2) AS CATEGORY,
COUNT(*) AS PRODUCT
FROM PRODUCT
GROUP BY SUBSTRING(PRODUCT_CODE, 1, 2)
ORDER BY CATEGORY;
- 일단 완전한 이해는 다음 기회로 미루고... 넘긴다..ㅎ
728x90
반응형
'Data Science > SQL' 카테고리의 다른 글
[프로그래머스 sql] if 활용하기 (0) | 2025.04.01 |
---|---|
[프로그래머스 sql] select에서도 like 조건문 가능 (0) | 2025.03.31 |
[프로그래머스 sql] datetime에서 시간 제외 date() (0) | 2025.03.30 |
[프로그래머스 sql] count()는 null 못셈 (0) | 2025.03.20 |
[프로그래머스 sql] 비트연산.. 너무 익숙해지지가 않음.. (0) | 2025.03.20 |