*Oracle ๊ธฐ์ค ํ์ด
13. ์กฐ๊ฑด์ ๋ง๋ ํ์์ ๊ตฌํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/131535 )
USER_INFO ํ ์ด๋ธ์์ 2021๋ ์ ๊ฐ์ ํ ํ์ ์ค ๋์ด๊ฐ 20์ธ ์ด์ 29์ธ ์ดํ์ธ ํ์์ด ๋ช ๋ช ์ธ์ง ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE AGE>=20 AND AGE<=29 AND TO_CHAR(JOINED, 'YYYY')='2021';
14. ํ๋ถ์ธ๊ณผ ๋๋ ์ผ๋ฐ์ธ๊ณผ ์์ฌ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/132203 )
DOCTOR ํ ์ด๋ธ์์ ์ง๋ฃ๊ณผ๊ฐ ํ๋ถ์ธ๊ณผ(CS)์ด๊ฑฐ๋ ์ผ๋ฐ์ธ๊ณผ(GS)์ธ ์์ฌ์ ์ด๋ฆ, ์์ฌID, ์ง๋ฃ๊ณผ, ๊ณ ์ฉ์ผ์๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๊ณ ์ฉ์ผ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ , ๊ณ ์ฉ์ผ์๊ฐ ๊ฐ๋ค๋ฉด ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
SELECT DR_NAME, DR_ID, MCDP_CD, TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') AS HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME ASC;
15. 12์ธ ์ดํ์ธ ์ฌ์ ํ์ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/132201 )
PATIENT ํ ์ด๋ธ์์ 12์ธ ์ดํ์ธ ์ฌ์ํ์์ ํ์์ด๋ฆ, ํ์๋ฒํธ, ์ฑ๋ณ์ฝ๋, ๋์ด, ์ ํ๋ฒํธ๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์ ํ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ, 'NONE'์ผ๋ก ์ถ๋ ฅ์์ผ ์ฃผ์๊ณ ๊ฒฐ๊ณผ๋ ๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ , ๋์ด๊ฐ ๊ฐ๋ค๋ฉด ํ์์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE')
FROM PATIENT
WHERE AGE<=12 AND GEND_CD='W'
ORDER BY AGE DESC, PT_NAME ASC;
16. ์ธ๊ธฐ ์๋ ์์ด์คํฌ๋ฆผ ( https://school.programmers.co.kr/learn/courses/30/lessons/133024 )
์๋ฐ๊ธฐ์ ํ๋งค๋ ์์ด์คํฌ๋ฆผ์ ๋ง์ ์ด์ฃผ๋ฌธ๋์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ ์ด์ฃผ๋ฌธ๋์ด ๊ฐ๋ค๋ฉด ์ถํ ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ฌ ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC;
17. ๋ชจ๋ ๋ ์ฝ๋ ์กฐํํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/59034 )
๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋ชจ๋ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ANIMAL_ID์์ผ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
SELECT *
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
18. ์กฐ๊ฑด์ ๋ง๋ ๋์ ๋ฆฌ์คํธ ์ถ๋ ฅํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/144853 )
BOOK ํ ์ด๋ธ์์ 2021๋ ์ ์ถํ๋ '์ธ๋ฌธ' ์นดํ ๊ณ ๋ฆฌ์ ์ํ๋ ๋์ ๋ฆฌ์คํธ๋ฅผ ์ฐพ์์ ๋์ ID(BOOK_ID), ์ถํ์ผ (PUBLISHED_DATE)์ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ์ถํ์ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
SELECT BOOK_ID, TO_CHAR(PUBLISHED_DATE, 'YYYY-MM-DD')AS PUBLISHED_DATE
FROM BOOK
WHERE TO_CHAR(PUBLISHED_DATE, 'YYYY') = '2021' AND CATEGORY = '์ธ๋ฌธ'
ORDER BY PUBLISHED_DATE ASC;
19. ํ๊ท ์ผ์ผ ๋์ฌ ์๊ธ ๊ตฌํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/151136 )
CAR_RENTAL_COMPANY_CAR ํ ์ด๋ธ์์ ์๋์ฐจ ์ข ๋ฅ๊ฐ 'SUV'์ธ ์๋์ฐจ๋ค์ ํ๊ท ์ผ์ผ ๋์ฌ ์๊ธ์ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ํ๊ท ์ผ์ผ ๋์ฌ ์๊ธ์ ์์ ์ฒซ ๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ๊ณ , ์ปฌ๋ผ๋ช ์ AVERAGE_FEE ๋ก ์ง์ ํด์ฃผ์ธ์.
SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV'
20. ๊ณผ์ผ๋ก ๋ง๋ ์์ด์คํฌ๋ฆผ ๊ณ ๋ฅด๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/133025 )
์๋ฐ๊ธฐ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ด 3,000๋ณด๋ค ๋์ผ๋ฉด์ ์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ๊ณผ์ผ์ธ ์์ด์คํฌ๋ฆผ์ ๋ง์ ์ด์ฃผ๋ฌธ๋์ด ํฐ ์์๋๋ก ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
SELECT F.FLAVOR
FROM FIRST_HALF F
JOIN ICECREAM_INFO I
ON F.FLAVOR = I.FLAVOR
WHERE I.INGREDIENT_TYPE = 'fruit_based' and F.TOTAL_ORDER > 3000;
21. ์ต๋๊ฐ ๊ตฌํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/59415 )
๊ฐ์ฅ ์ต๊ทผ์ ๋ค์ด์จ ๋๋ฌผ์ ์ธ์ ๋ค์ด์๋์ง ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
SELECT MAX(DATETIME)
FROM ANIMAL_INS;
22. ํน์ ์ต์ ์ด ํฌํจ๋ ์๋์ฐจ ๋ฆฌ์คํธ ๊ตฌํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/157343 )
CAR_RENTAL_COMPANY_CAR ํ ์ด๋ธ์์ '๋ค๋น๊ฒ์ด์ ' ์ต์ ์ด ํฌํจ๋ ์๋์ฐจ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ์๋์ฐจ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKES '%๋ค๋น๊ฒ์ด์
%'
ORDER BY CAR_ID DESC;
- ์ ๊ท์์ ํ์ฉํ์ฌ ์์ WHERE์ ์ ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ผ ์๋ ์๋ค.
SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE REGEXP_LIKE(OPTIONS, '๋ค๋น๊ฒ์ด์
')
ORDER BY CAR_ID DESC;
- ๋๋ WHERE์ ์์ LOCATE๋ฅผ ํ์ฉํ์ฌ ์ฐพ์ ์๋ ์๋ค๊ณ ํ๋ค...
23. ์๋์ฐจ ๋์ฌ ๊ธฐ๋ก์์ ์ฅ๊ธฐ/๋จ๊ธฐ ๋์ฌ ๊ตฌ๋ถํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/151138 )
CAR_RENTAL_COMPANY_RENTAL_HISTORY ํ ์ด๋ธ์์ ๋์ฌ ์์์ผ์ด 2022๋ 9์์ ์ํ๋ ๋์ฌ ๊ธฐ๋ก์ ๋ํด์ ๋์ฌ ๊ธฐ๊ฐ์ด 30์ผ ์ด์์ด๋ฉด '์ฅ๊ธฐ ๋์ฌ' ๊ทธ๋ ์ง ์์ผ๋ฉด '๋จ๊ธฐ ๋์ฌ' ๋ก ํ์ํ๋ ์ปฌ๋ผ(์ปฌ๋ผ๋ช : RENT_TYPE)์ ์ถ๊ฐํ์ฌ ๋์ฌ๊ธฐ๋ก์ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ๋์ฌ ๊ธฐ๋ก ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
SELECT HISTORY_ID, CAR_ID, TO_CHAR(START_DATE,'YYYY-MM-DD') "START_DATE",
TO_CHAR(END_DATE, 'YYYY-MM-DD') "END_DATE",
CASE
WHEN (END_DATE-START_DATE)>=29
THEN '์ฅ๊ธฐ ๋์ฌ'
ELSE '๋จ๊ธฐ ๋์ฌ'
END AS 'RENT_TYPE'
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE TO_CHAR(START_DATE, 'YYYY-MM') = '2022-09'
ORDER BY HISTORY_ID DESC;
- ๊ธฐ๊ฐ์ด 30์ผ ์ด์์ด๋ฏ๋ก END_DATE - START_DATE + 1์ด 30 ์ด์์ด ๋์ด์ผ ํ๋ค...
24. ์กฐ๊ฑด์ ๋ถํฉํ๋ ์ค๊ณ ๊ฑฐ๋ ๋๊ธ ์กฐํํ๊ธฐ ( https://school.programmers.co.kr/learn/courses/30/lessons/164673 )
USED_GOODS_BOARD์ USED_GOODS_REPLY ํ ์ด๋ธ์์ 2022๋ 10์์ ์์ฑ๋ ๊ฒ์๊ธ ์ ๋ชฉ, ๊ฒ์๊ธ ID, ๋๊ธ ID, ๋๊ธ ์์ฑ์ ID, ๋๊ธ ๋ด์ฉ, ๋๊ธ ์์ฑ์ผ์ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ๋๊ธ ์์ฑ์ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์๊ณ , ๋๊ธ ์์ฑ์ผ์ด ๊ฐ๋ค๋ฉด ๊ฒ์๊ธ ์ ๋ชฉ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, TO_CHAR(R.CREATED_DATE, 'YYYY-MM-DD')
FROM USED_GOODS_BOARD B
JOIN USED_GOODS_REPLY R
ON B.BOARD_ID = R.BOARD_ID
WHERE TO_CHAR(B.CREATED_DATE, 'YYYY-MM') = '2022-10'
ORDER BY R.CREATED_DATE ASC, B.TITLE ASC;
'ํ๋ก๊ทธ๋๋จธ์ค > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค SQL๋ฌธ LV. 3 (2) (2) | 2023.06.29 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค SQL๋ฌธ LV. 3 (1) (0) | 2023.06.29 |
ํ๋ก๊ทธ๋๋จธ์ค SQL๋ฌธ LV. 2 (2) (0) | 2023.06.28 |
ํ๋ก๊ทธ๋๋จธ์ค SQL๋ฌธ LV. 2 (1) (0) | 2023.06.28 |
ํ๋ก๊ทธ๋๋จธ์ค SQL๋ฌธ LV. 1 (1) (0) | 2023.06.23 |