코딩테스트

[프로그래머스] [SQL] 진료과별 총 예약 횟수 출력하기

히그다스 2023. 10. 2. 23:10

 

 

DBA 넣고 코테를 SQL로 본대서 본격 서브쿼리 공부하기 시작

 

 

 

 

서브쿼리로 최대한 풀어보려 했는데

너무 예전에 배웠어서 기억이 희미...

 

 

구글링해도 잘 이해가 안돼서 전략을 바꿨다

우선 내가 풀기 → GPT에게 물어보기

난 Bard를 쓰긴 했지만 비교해가며 공부하려고 ㅎ

 

 

우선 이게 내가 푼 SQL 

실은 서브쿼리 만든다고 정신없어서 어떻게 풀었는지도 모르겠다

맞아서 오히려 어리둥절했음

이제 뜯어보자 ^^

 

 

SELECT 컬럼명은 '진료과 코드', '5월예약건수'

FROM APPOINTMENT 테이블

WHERE 2022년 5월에 예약

GROUP BY 진료과코드 별로 조회

ORDER BY 진료과별 예약한 환자 수를 기준으로 오름차순 , 진료과 코드를 기준으로 오름차순 정렬

 

 

SELECT MCDP_CD as "진료과 코드", count(APNT_YMD) as "5월예약건수"
FROM APPOINTMENT 
WHERE APNT_YMD LIKE "2022-05%"
GROUP BY MCDP_CD
ORDER BY count(APNT_YMD) ASC, MCDP_CD ASC;

 

 

자 이제 서브쿼리를 파헤쳐보자

우선 WHERE절이 없어지고 FROM 절로 서브쿼리가 들어갔다

진료과 코드와 진료예약일시를 2022년 5월 예약인걸로 꺼낸다

나머지는 같다

 

 

SELECT MCDP_CD as "진료과 코드", count(APNT_YMD) as "5월예약건수"
FROM (
    SELECT MCDP_CD, APNT_YMD
    FROM APPOINTMENT
    WHERE APNT_YMD LIKE "2022-05%"
) AS sub
GROUP BY MCDP_CD
ORDER BY count(APNT_YMD) ASC, MCDP_CD ASC;

 

 

이제 서브쿼리로 달려보자고

아좌좟

 

 


출처 : 프로그래머스