<문제출처>
https://school.programmers.co.kr/learn/courses/30/parts/17042
문제풀이 하며 새로 배웠던 SQL구문들 적어봅니다
평균 일일 대여 요금 구하기(Level 1)
더보기
SELECT
ROUND(SUM(DAILY_FEE)/COUNT(CAR_TYPE), 0) AS AVERAGE_FEE
FROM
CAR_RENTAL_COMPANY_CAR
WHERE
CAR_TYPE = 'SUV';
3월에 태어난 여성 회원 목록 출력하기(Level 2)
더보기
SELECT
MEMBER_ID,
MEMBER_NAME,
GENDER,
date_format(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM
MEMBER_PROFILE
WHERE
EXTRACT(MONTH FROM DATE_OF_BIRTH) = 3
AND
TLNO IS NOT NULL
AND
GENDER = 'W'
ORDER BY
MEMBER_ID ASC;
서울에 위치한 식당 목록 출력하기(Level 4)
- LEFT((칼럼명), 2) = "서울" : 왼쪽부터 2글자가 "서울" 인지확인
더보기
SELECT
REST_INFO.REST_ID,
REST_INFO.REST_NAME,
REST_INFO.FOOD_TYPE,
REST_INFO.FAVORITES,
REST_INFO.ADDRESS,
ROUND(AVG(REST_REVIEW.REVIEW_SCORE), 2) AS "SCORE "
FROM
REST_INFO
JOIN REST_REVIEW ON
REST_INFO.REST_ID = REST_REVIEW.REST_ID
WHERE
LEFT(REST_INFO.ADDRESS, 2) = '서울'
GROUP BY
REST_REVIEW.REST_ID
ORDER BY
AVG(REST_REVIEW.REVIEW_SCORE) DESC,
REST_INFO.FAVORITES DESC;
강원도에 위치한 생산공장 목록 출력하기(Level 1)
- WHERE (칼럼명) LIKE : 원하는 문장이 들어있는지 확인
- '강원도%' - 강원도로 시작하는 문장
- '%강원도' - 강원도로 끝나는 문장
- '%강원도%' - 강원도가 들어가 있는 문장
더보기
SELECT
FACTORY_ID, FACTORY_NAME, ADDRESS
FROM
FOOD_FACTORY
WHERE
ADDRESS LIKE '강원도%'
ORDER BY
FACTORY_ID ASC;
12세 이하인 여자 환자 목록 출력하기(Level 1)
- IFNULL((칼럼명), "표현할 문자")
더보기
SELECT
PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE")
FROM
PATIENT
WHERE
AGE <= 12
AND
GEND_CD = 'W'
ORDER BY
AGE DESC,
PT_NAME ASC
흉부외과 또는 일반외과 의사 목록 출력하기(Level 1)
- DATA_FORMAT(칼럼명, '%Y-%m-%d') : 2022-01-03 식으로 표현
- '%y-%m-%d' = 22-01-03 식으로 표현
- 이 밖에도 다양한 방식이 있음 MySQL DATA_FORMAT으로 찾아보기
더보기
SELECT
DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')
FROM
DOCTOR
WHERE
MCDP_CD = 'CS'
OR
MCDP_CD = 'GS'
ORDER BY
HIRE_YMD DESC,
DR_NAME ASC;
과일로 만든 아이스크림 고르기(Level 1)
더보기
SELECT
A.FLAVOR
FROM
FIRST_HALF A
LEFT JOIN ICECREAM_INFO B ON
A.FLAVOR = B.FLAVOR
WHERE
A.TOTAL_ORDER > 3000
AND
B.INGREDIENT_TYPE = 'fruit_based'
ORDER BY
TOTAL_ORDER DESC;
조건에 맞는 도서 리스트 출력하기(Level 1)
더보기
SELECT
BOOK_ID,
DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS 'PUBLISHED_DATE'
FROM
BOOK
WHERE
EXTRACT(YEAR FROM PUBLISHED_DATE) = 2021
AND
CATEGORY = '인문'
ORDER BY
PUBLISHED_DATE ASC;
재구매가 일어난 상품과 회원 리스트 구하기(Level 2)
- 개인적으로 헷갈림 복습하자
더보기
SELECT
USER_ID,PRODUCT_ID, COUNT(*)
FROM
ONLINE_SALE
GROUP BY
USER_ID,PRODUCT_ID
# HAVING
# COUNT(*) >= 2
ORDER BY
USER_ID ASC ,
PRODUCT_ID DESC;
오프라인/온라인 판매 데이터 통합하기(Level 4)
- EXTRACT(MONTH FROM 칼럼명) = 03
더보기
SELECT DATE_FORMAT(g.SALES_DATE, '%Y-%m-%d'), g.PRODUCT_ID, g.USER_ID, g.SALES_AMOUNT
FROM(
SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
UNION ALL
SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
) AS g
WHERE EXTRACT(MONTH FROM g.SALES_DATE) = 03
ORDER BY
SALES_DATE ASC,
PRODUCT_ID ASC,
USER_ID ASC;
어린 동물 찾기(Level 1)
더보기
SELECT
ANIMAL_ID, NAME
FROM
ANIMAL_INS
WHERE
INTAKE_CONDITION != 'Aged'
ORDER BY
ANIMAL_ID ASC;
여러 기준으로 정렬하기(Level 1)
더보기
SELECT
ANIMAL_ID, NAME, DATETIME
FROM
ANIMAL_INS
ORDER BY
NAME ASC,
DATETIME DESC;
조건에 맞는 회원수 구하기(Level 1)
더보기
SELECT
COUNT(USER_ID)
FROM
USER_INFO
WHERE
EXTRACT(YEAR FROM JOINED) = 2021
AND
AGE >= 20
AND
AGE <= 29;
'algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스-파이썬] 연습문제(LV3) : 길 찾기 게임 (0) | 2023.03.10 |
---|---|
[프로그래머스-파이썬] 연습문제(LV4) : 무지의 먹방 라이브 (0) | 2023.03.10 |
[프로그래머스-파이썬] 연습문제(LV2) : 오픈채팅방 (0) | 2023.03.10 |
[프로그래머스-파이썬] 연습문제(LV1) : 실패율 (0) | 2023.03.10 |
[프로그래머스-파이썬] 연습문제(LV3) : 인사고과 (0) | 2023.01.25 |