๊ฒฝ๊ธฐ๋์ ์์นํ ์ํ์ฐฝ๊ณ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/131114
FOOD_WAREHOUSE ํ ์ด๋ธ์์ ๊ฒฝ๊ธฐ๋์ ์์นํ ์ฐฝ๊ณ ์ ID, ์ด๋ฆ, ์ฃผ์, ๋๋์์ค ์ฌ๋ถ๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๋๋์์ค ์ฌ๋ถ๊ฐ NULL์ธ ๊ฒฝ์ฐ, 'N'์ผ๋ก ์ถ๋ ฅ์์ผ ์ฃผ์๊ณ ๊ฒฐ๊ณผ๋ ์ฐฝ๊ณ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
SELECT
WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
CASE
WHEN FREEZER_YN IS NULL THEN 'N'
ELSE FREEZER_YN
END AS FREEZER_YN
FROM
FOOD_WAREHOUSE
WHERE
ADDRESS LIKE '๊ฒฝ๊ธฐ๋%'
ORDER BY
WAREHOUSE_ID ASC;
END AS ๋ค์์ ์ปฌ๋ผ๋ช ์ ๋ช ์ํด์ ๋ฌธ์ ์ ์ถ๋ ฅ ์์์ ๋ง์ถฐ์ผ ํ๋ค.
์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์์ด๋
https://school.programmers.co.kr/learn/courses/30/lessons/59039
๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ ์ค, ์ด๋ฆ์ด ์๋ ์ฑ๋ก ๋ค์ด์จ ๋๋ฌผ์ ID๋ฅผ ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๋จ, ID๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์ด์ผ ํฉ๋๋ค.
select animal_id
from animal_ins
where name is null
order by animal_id
์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์์ด๋
https://school.programmers.co.kr/learn/courses/30/lessons/59407
๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ ์ค, ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ID๋ฅผ ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๋จ, ID๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์ด์ผ ํฉ๋๋ค.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID ASC
NULL ์ฒ๋ฆฌํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/59410
์ ์ ๊ฒ์ํ์ ๋๋ฌผ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ค ํฉ๋๋ค. ๋๋ฌผ์ ์๋ฌผ ์ข , ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ์์ด๋ ์์ผ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ NULL์ด๋ผ๋ ๊ธฐํธ๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์, ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์ด๋ฆ์ "No name"์ผ๋ก ํ์ํด ์ฃผ์ธ์.
select ANIMAL_TYPE,
case when name is null then 'No name' else name end as name,
sex_upon_intake
from animal_ins
order by animal_id
๋์ด ์ ๋ณด๊ฐ ์๋ ํ์ ์ ๊ตฌํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/131528
USER_INFO ํ ์ด๋ธ์์ ๋์ด ์ ๋ณด๊ฐ ์๋ ํ์์ด ๋ช ๋ช ์ธ์ง ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์ปฌ๋ผ๋ช ์ USERS๋ก ์ง์ ํด์ฃผ์ธ์.
select count(*) as users
from USER_INFO
where age is null
ROOT ์์ดํ ๊ตฌํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/273710
ROOT ์์ดํ ์ ์ฐพ์ ์์ดํ ID(ITEM_ID), ์์ดํ ๋ช (ITEM_NAME)์ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด ์ฃผ์ธ์. ์ด๋, ๊ฒฐ๊ณผ๋ ์์ดํ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด ์ฃผ์ธ์.
select ii.ITEM_ID, ii.ITEM_NAME
from item_info ii
join item_tree it
on ii.item_id = it.item_id
where it.PARENT_ITEM_ID is null
order by ii.ITEM_ID asc
์ ๊ทธ๋ ์ด๋ ํ ์ ์๋ ์์ดํ ๊ตฌํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/273712
๋ ์ด์ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ ์์ดํ ์ ์์ดํ ID(ITEM_ID), ์์ดํ ๋ช (ITEM_NAME), ์์ดํ ์ ํฌ๊ท๋(RARITY)๋ฅผ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ ์์ฑํด ์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ์์ดํ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด ์ฃผ์ธ์.
left join์ ์ธ ์ ์๋ ์๋ ๋ฌธ์
๋ฌธ์ ํธ๋๋ฐ 5๋ถ, ํ๊ณ ๋์ ์ดํดํ๋๋ฐ 50๋ถ ๊ฑธ๋ ธ๋ค. (๋ IS NOT NULL ์ด๋ผ๊ณ ์๊ฐํ๋ค)
๋ฌด์๋ณด๋ค ๋ญ๊ฐ ๋ถ๋ชจ item์ด๋ฉด ์
๊ทธ๋ ์ด๋ ํ ๊ฒ ๊ฐ์๊ฒ ์ผ๋ฐ์ ์ธ๊ฒ ๊ฐ์๋ฐ, ๋ฐ๋๋ผ์ ๊ณ์ ํท๊ฐ๋ ธ๋ค.
“๋ ์ด์ ์
๊ทธ๋ ์ด๋ํ ์ ์๋ ์์ดํ
”์ ์ฐพ๋๋ค๋ ๋ง์ ๋ถ๋ชจ๊ฐ ์๋ ์์ดํ
์ ์ ์ธํ ์์ดํ
์ ์ฐพ๊ธฐ
๋ถ๋ชจ๊ฐ ์์ผ๋ฉด ์
๊ทธ๋ ์ด๋ ๊ฐ๋ฅ๋ถ๋ชจ๊ฐ ์์ผ๋ฉด ์
๊ทธ๋ ์ด๋ ๋ถ๊ฐ๋ฅ์
๊ทธ๋ ์ด๋ ๋ถ๊ฐ๋ฅํ ๊ฑธ ์ฐพ๋๊ฑฐ๋ -> ๋ถ๋ชจ๊ฐ ์๋๊ฑธ ์ฐพ๊ธฐ
๋ฌธ์ ์ ์๋์ ๊ฐ์ด ์จ์๋ค...
PARENT ์์ดํ ์ด ์๋ ์์ดํ ์ ROOT ์์ดํ ์ด๋ผ๊ณ ํฉ๋๋ค.
๋ฃจํธ๋ฅผ ์ฐพ์ -> ๋ถ๋ชจ๊ฐ ์๋๊ฑฐ -> ๋ถ๋ชจ ์์ด๋๊ฐ ๋์ธ๊ฑฐ์์. ์ด๊ฑฐ ์ 50๋ถ๋์ ๊ณ ๋ฏผํ๋
select ii.ITEM_ID,ii.ITEM_NAME,ii.RARITY
from item_info ii
left join item_tree it on ii.item_id = it.parent_item_id
where it.parent_item_id is null
order by ii.item_id desc
์ก์ ๋ฌผ๊ณ ๊ธฐ์ ํ๊ท ๊ธธ์ด ๊ตฌํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/293259
ํ๊ท ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ ์ปฌ๋ผ ๋ช ์ AVERAGE_LENGTH๋ก ํด์ฃผ์ธ์.
ํ๊ท ๊ธธ์ด๋ ์์์ 3์งธ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ๋ฉฐ, 10cm ์ดํ์ ๋ฌผ๊ณ ๊ธฐ๋ค์ 10cm ๋ก ์ทจ๊ธํ์ฌ ํ๊ท ๊ธธ์ด๋ฅผ ๊ตฌํด์ฃผ์ธ์.
SELECT
ROUND(AVG(CASE
WHEN LENGTH is null THEN 10
ELSE LENGTH
END), 2) AS AVERAGE_LENGTH
FROM FISH_INFO;
'๐ฏ์๊ณ ๋ฆฌ์ฆ > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2. SUM, MAX, MIN (0) | 2025.01.20 |
---|