프로그래머스 문제풀이/SQL (MYSQL)

[MYSQL] 프로그래머스 SQL 문제풀이 - Level 1 (14~18번 문제풀이)

남건욱 2023. 11. 15. 11:35
반응형
14. 조건에 맞는 회원수 구하기

문제

SELECT COUNT(*)
FROM USER_INFO
WHERE JOINED LIKE '2021%' 
AND AGE BETWEEN 20 AND 29

<작성한 코드>

USER_INFO 테이블에서 조건에 맞는 정보의 개수를 구하도록 했다. 조건은 JOINED 칼럼에서 데이터가 2021로 시작하고 AGE가 20과 29 사이에 있는 값만 가져오도록 조건을 걸었다.

 

 

 

15. 가장 비싼 상품 구하기

문제

SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT

<작성한 코드>

PRODUCT 테이블에서 MAX를 사용하여 PRICE값중 가장 큰 값을 구해오도록 했다. 별칭은 MAX_PRICE로 지정했다.

 

 

 

 

16. 12세 이하인 여자 환자 목록 출력하기

문제

SELECT PT_NAME, PT_NO, GEND_CD, AGE, COALESCE(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME

<작성한 코드>

PATIENT 테이블에서 각각의 정보를 조회해오고 TLNO는 COALESCE를 사용해서 값이 NULL 일 때 값을 NONE로 출력하도록 했다. 별칭은 TLNO로 해줬고, 조건은 AGE가 12 이하이고 GEND_CD가 'W'이어야 한다. 정렬은 AGE를 기준으로 내림차순으로 하고 나이가 같다면 PT_NAME을 기준으로 오름차순으로 정렬했다.

 

 

 

 

17. 흉부외과 또는 일반외과 의사 목록 출력하기

문제

SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME

<작성한 코드>

DOCTOR 테이블에서 요청하는 정보들을 조회했다. 여기서 날짜만 형식을 맞춰야 하기 때문에 DATE_FORMAT을 사용해서 HIRE_YMD를 %Y 연도 % m 월 % d 일 을 사용해서 형식을 맞췄다. 그 뒤 조건은 MCDP_CD가 CS, GS중 하나인 것을 조회했고 정렬은 HIRE_YMD를 기준으로 내림차순 정렬을 해줬고 해당 값이 동일하다면 DR_NAME을 기준을 오름차순으로 정렬하였다.

 

 

 

 

18. 인기있는 아이스크림

문제

SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID

<작성한 코드>

FIRST_HALF 테이블에서 FLAVOR칼럼을 조회했고 정렬은 TOTAL_ORDER를 기준으로 내림차순으로 하였다. 만약 해당 값이 같다면 SHIPMENT_ID를 기준으로 오름차순 정렬하였다.

 

반응형
프로필사진

남건욱's 공부기록