๋๋ช ๋๋ฌผ ์ ์ฐพ๊ธฐ
๋ฌธ์
ANIMAL_INS ํ ์ด๋ธ ๊ตฌ์กฐ
๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ ์ด๋ฆ ์ค ๋ ๋ฒ ์ด์ ์ฐ์ธ ์ด๋ฆ๊ณผ ํด๋น ์ด๋ฆ์ด ์ฐ์ธ ํ์๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์ง๊ณ์์ ์ ์ธํ๋ฉฐ, ๊ฒฐ๊ณผ๋ ์ด๋ฆ ์์ผ๋ก ์กฐํํด์ฃผ์ธ์.
ํ์ด
1. ORACLE, MYSQL
SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME;
๊ฐ๊ฒฉ์ด ์ ์ผ ๋น์ผ ์ํ์ ์ ๋ณด ์ถ๋ ฅํ๊ธฐ
๋ฌธ์
FOOD_PROUDCT ํ ์ด๋ธ ๊ตฌ์กฐ FOOD_PRODUCT ํ ์ด๋ธ์์ ๊ฐ๊ฒฉ์ด ์ ์ผ ๋น์ผ ์ํ์ ์ํ ID, ์ํ ์ด๋ฆ, ์ํ ์ฝ๋, ์ํ๋ถ๋ฅ, ์ํ ๊ฐ๊ฒฉ์ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
ํ์ด
1. ORACLE, MYSQL
1) WHERE์ ์ ์๋ธ ์ฟผ๋ฆฌ
SELECT *
FROM FOOD_PRODUCT FP
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
2) JOIN ์ฌ์ฉ
SELECT FP.*
FROM FOOD_PRODUCT FP
JOIN (
SELECT MAX(PRICE) AS MX_PRICE
FROM FOOD_PRODUCT
) MX_FP
ON FP.PRICE = MX_FP.MX_PRICE;
3) WITH์ ์ฌ์ฉ(์ฌ์ฌ์ฉ์ฑ ๊ณ ๋ ค)
WITH MAXPRICE AS (
SELECT MAX(PRICE) AS MX_PRICE
FROM FOOD_PRODUCT
)
SELECT *
FROM FOOD_PRODUCT FP
JOIN MAXPRICE MP
ON FP.PRICE = MP.MX_PRICE;
์ง๋ฃ๊ณผ๋ณ ์ด ์์ฝ ํ์ ์ถ๋ ฅํ๊ธฐ
๋ฌธ์
APPOINTMENT ํ ์ด๋ธ ๊ตฌ์กฐ APPOINTMENT ํ ์ด๋ธ์์ 2022๋ 5์์ ์์ฝํ ํ์ ์๋ฅผ ์ง๋ฃ๊ณผ์ฝ๋ ๋ณ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋, ์ปฌ๋ผ๋ช ์ '์ง๋ฃ๊ณผ ์ฝ๋', '5์์์ฝ๊ฑด์'๋ก ์ง์ ํด์ฃผ์๊ณ ๊ฒฐ๊ณผ๋ ์ง๋ฃ๊ณผ๋ณ ์์ฝํ ํ์ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , ์์ฝํ ํ์ ์๊ฐ ๊ฐ๋ค๋ฉด ์ง๋ฃ๊ณผ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
ํ์ด
1. ORACLE, MYSQL
SELECT MCDP_CD AS "์ง๋ฃ๊ณผ ์ฝ๋", COUNT(MCDP_CD) AS "5์์์ฝ๊ฑด์"
FROM APPOINTMENT
WHERE EXTRACT(YEAR FROM APNT_YMD) = 2022
AND EXTRACT(MONTH FROM APNT_YMD) = 5
GROUP BY MCDP_CD
ORDER BY COUNT(MCDP_CD), MCDP_CD;
์กฐ๊ฑด์ ๋ถํฉํ๋ ์ค๊ณ ๊ฑฐ๋ ์ํ ์กฐํํ๊ธฐ
๋ฌธ์
USED_GOODS_BOARD ํ ์ด๋ธ ๊ตฌ์กฐ USED_GOODS_BOARD ํ ์ด๋ธ์์ 2022๋ 10์ 5์ผ์ ๋ฑ๋ก๋ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์๋ฌผ์ ๊ฒ์๊ธ ID, ์์ฑ์ ID, ๊ฒ์๊ธ ์ ๋ชฉ, ๊ฐ๊ฒฉ, ๊ฑฐ๋์ํ๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฑฐ๋์ํ๊ฐ SALE ์ด๋ฉด ํ๋งค์ค, RESERVED์ด๋ฉด ์์ฝ์ค, DONE์ด๋ฉด ๊ฑฐ๋์๋ฃ ๋ถ๋ฅํ์ฌ ์ถ๋ ฅํด์ฃผ์๊ณ , ๊ฒฐ๊ณผ๋ ๊ฒ์๊ธ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
ํ์ด
1. ORACLE, MYSQL
SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
CASE WHEN STATUS = 'SALE' THEN 'ํ๋งค์ค'
WHEN STATUS = 'RESERVED' THEN '์์ฝ์ค'
ELSE '๊ฑฐ๋์๋ฃ'
END AS STATUS
FROM USED_GOODS_BOARD
WHERE CREATED_DATE = '2022-10-05'
ORDER BY BOARD_ID DESC;
'DataBase > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ] SQL Lv.1 ๋ฌธ์ ํ์ด ๋ชจ์ (0) | 2024.08.12 |
---|