Lv2. 고양이와 개는 몇 마리 있을까
https://school.programmers.co.kr/learn/courses/30/lessons/59040
SELECT ANIMAL_TYPE, COUNT(*) AS 'COUNT'
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE ASC
❗GROUP BY 사용
❗ORDER BY 사용 (CAT 먼저인데 그냥 ORDER BY 사용해도 가능)
Lv2. 중성화 여부 파악하기
https://school.programmers.co.kr/learn/courses/30/lessons/59409
SELECT ANIMAL_ID, NAME
, CASE
WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN 'O'
WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O'
ELSE 'X'
END AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
❗CASE WHEN 절에 LIKE 사용해서 조건 생성
Lv2. 입양 시각 구하기(1)
https://school.programmers.co.kr/learn/courses/30/lessons/59412
SELECT HOUR(DATETIME) AS HOUR
, COUNT(*) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) > 8 AND HOUR(DATETIME) < 20
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)
❗WHERE 절에 조건 2개 다 쓰기
Lv2. 진료과별 총 예약 횟수 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/132202
-- 성공
SELECT MCDP_CD AS '진료과 코드'
, COUNT(*) AS '5월예약건수'
FROM APPOINTMENT
WHERE APNT_YMD LIKE '2022-05-%'
GROUP BY MCDP_CD
ORDER BY COUNT(*) ASC, MCDP_CD ASC
❗WHERE 절에 LIKE 사용해서 조건 달기
-- 실패
SELECT MCDP_CD AS '진료과 코드'
, COUNT(*) AS '5월예약건수'
FROM APPOINTMENT
WHERE YEAR(APNT_YMD) = '2022'
AND MONTH(APNT_YMD) = '05'
GROUP BY MCDP_CD
ORDER BY '5월예약건수' ASC, '진료과코드' ASC
❗WHERE 절에 YEAR(), MONTH() 사용 -> 시간이 오래 걸림
Lv2. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/151137
SELECT CAR_TYPE, COUNT(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%통풍시트%'
OR OPTIONS LIKE '%열선시트%'
OR OPTIONS LIKE '%가죽시트%'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
❗WHERE 절에 LIKE 조건문을 OR로 연결해서 조건 충족
Lv2. 조건에 맞는 도서와 저자 리스트 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/144854
SELECT B.BOOK_ID, A.AUTHOR_NAME
, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK AS B
LEFT JOIN AUTHOR AS A ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE B.CATEGORY = '경제'
ORDER BY B.PUBLISHED_DATE
❗DATE_FORMAT() 맞추기
❗JOIN 사용하기
Lv2. 상품 별 오프라인 매출 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/131533
SELECT P.PRODUCT_CODE
, SUM(P.PRICE * OS.SALES_AMOUNT) AS SALES
FROM OFFLINE_SALE AS OS
LEFT JOIN PRODUCT AS P ON OS.PRODUCT_ID = P.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, P.PRODUCT_CODE ASC
❗JOIN 사용하기
❗매출액 = 판매량 * 가격
Lv2. 성분으로 구분한 아이스크림 총 주문량
https://school.programmers.co.kr/learn/courses/30/lessons/133026
SELECT II.INGREDIENT_TYPE, SUM(FH.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF AS FH
LEFT JOIN ICECREAM_INFO AS II ON FH.FLAVOR = II.FLAVOR
GROUP BY II.INGREDIENT_TYPE
ORDER BY TOTAL_ORDER ASC
❗JOIN 사용하기
❗SUM() 집계 함수 사용하기
Lv2. 루시와 엘라 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/59046
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID
❗WHERE 절에 IN 사용해서 조건에 맞는 행 가져오기
Lv2. 3월에 태어난 여성 회원 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131120
SELECT MEMBER_ID, MEMBER_NAME, GENDER
, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH) = 3
AND TLNO IS NOT NULL
AND GENDER = 'W'
ORDER BY MEMBER_ID
❗DATE_FORMAT() 맞추기
❗WHERE 절에 조건 3개 다 맞추기
'SQL > SQL | 프로그래머스 코딩테스트' 카테고리의 다른 글
[SQL] 프로그래머스 코딩테스트 : Lv2. (4) (1) | 2024.09.13 |
---|---|
[SQL] 프로그래머스 코딩테스트 : Lv2. (3) (0) | 2024.09.13 |
[SQL] 프로그래머스 코딩테스트 : Lv2. (1) (0) | 2024.09.10 |
[SQL] 프로그래머스 코딩테스트 : Lv1. (3) (0) | 2024.09.08 |
[SQL] 프로그래머스 코딩테스트 : Lv1. (2) (1) | 2024.09.05 |