DS가 되기 위한 여정 👩‍💻

Data Science/SQL

[프로그래머스 sql] substring()에 익숙해질 것.

Tashapark 2025. 3. 31. 14:20
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
반응형