์ต๊ทผ Programmers์ ์๋ก์ด SQL ๋ฌธ์ ๋ค์ด ์ถ๊ฐ๋์๊ธธ๋ ํด๋ฆฌ์ด ํด๋ณด๋ ค๊ณ ํ๋ค. ๐
์ด์ ๋ฌธ์ ๋ค์ ๐์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!
๊ฐ์๋์ ์์นํ ์์ฐ๊ณต์ฅ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ
select factory_id, factory_name, address
from food_factory
where substr(address, 1, 3) = "๊ฐ์๋"
# where left(address, 3) = "๊ฐ์๋"
# where address like "๊ฐ์๋%"
order by factory_id
like๊ฐ ๊ฐ์ฅ ํธํ์ง๋ง left, substr ์ฌ์ฉ๋ฒ๋ ์์๋๊ธฐ !
๊ฒฝ๊ธฐ๋์ ์์นํ ์ํ์ฐฝ๊ณ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ
select warehouse_id, warehouse_name, address, if(freezer_yn is null, 'N', freezer_yn)
from food_warehouse
where address like "๊ฒฝ๊ธฐ๋%"
order by warehouse_id
๋์ด ์ ๋ณด๊ฐ ์๋ ํ์ ์ ๊ตฌํ๊ธฐ
select count(*)
from user_info
where age is null
์กฐ๊ฑด์ ๋ง๋ ํ์์ ๊ตฌํ๊ธฐ
select count(*)
from user_info
where (age between 20 and 29) and (year(joined) = 2021)
๊ฐ์ฅ ๋น์ผ ์ํ ๊ตฌํ๊ธฐ
select max(price)
from product
12์ธ ์ดํ์ธ ์ฌ์ ํ์ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ
select pt_name, pt_no, gend_cd, age, if(tlno is null, 'NONE', tlno)
from patient
where age <= 12 and gend_cd = 'W'
order by age desc, pt_name
ํ๋ถ์ธ๊ณผ ๋๋ ์ผ๋ฐ์ธ๊ณผ ์์ฌ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ
select dr_name, dr_id, mcdp_cd, date_format(hire_ymd, "%Y-%m-%d")
from doctor
where mcdp_cd in ('CS', 'GS')
# where mcdp_cd = 'CS' or mcdp_cd = 'GS'
order by hire_ymd desc, dr_name
๋น๊ต ์ฐ์ฐ์์ in ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ์ฌ๋ฌ ๊ฐ๋ฅผ ๋น๊ตํด์ผ ํ ๊ฒฝ์ฐ in์ ์ฌ์ฉํด์ฃผ๋ ๊ฒ์ด ๊น๋ํ๋ค๊ณ ์๊ฐ๋๋ค.
์ธ๊ธฐ์๋ ์์ด์คํฌ๋ฆผ
select flavor
from first_half
order by total_order desc, shipment_id
๊ณผ์ผ๋ก ๋ง๋ ์์ด์คํฌ๋ฆผ ๊ณ ๋ฅด๊ธฐ
select fi.flavor
from first_half fi, icecream_info ic
where fi.flavor = ic.flavor and fi.total_order > 3000 and ic.ingredient_type = 'fruit_based'
order by total_order desc
์กฐ๊ฑด์ ๋ง๋ ๋์ ๋ฆฌ์คํธ ์ถ๋ ฅํ๊ธฐ
select book_id, date_format(published_date, "%Y-%m-%d")
from book
where year(published_date) = '2021' and category = '์ธ๋ฌธ'
order by published_date
ํ๊ท ์ผ์ผ ๋์ฌ ์๊ธ ๊ตฌํ๊ธฐ
select round(avg(daily_fee))
from car_rental_company_car
where car_type = 'SUV'
# group by car_type
# having car_type = 'SUV'
group by ์ด์ฉ๋ ๊ฐ๋ฅํ๋, where๋ฅผ ํ์ฉํ๋ฉด ํจ์ฌ ๊ฐํธํ๋ค.
์๋์ฐจ ๋์ฌ ๊ธฐ๋ก์์ ์ฅ๊ธฐ/๋จ๊ธฐ ๋์ฌ ๊ตฌ๋ถํ๊ธฐ
select history_id, car_id, date_format(start_date, "%Y-%m-%d") as start_date, date_format(end_date, "%Y-%m-%d") as end_date, if(datediff(end_date, start_date)+1 >= 30, "์ฅ๊ธฐ ๋์ฌ", "๋จ๊ธฐ ๋์ฌ") as rent_type
from car_rental_company_rental_history
where date_format(start_date, "%Y-%m") = '2022-09'
order by history_id desc
ํน์ ์ต์ ์ด ํฌํจ๋ ์๋์ฐจ ๋ฆฌ์คํธ ๊ตฌํ๊ธฐ
select *
from car_rental_company_car
where options like "%๋ค๋น๊ฒ์ด์
%"
order by car_id desc
์กฐ๊ฑด์ ๋ถํฉํ๋ ์ค๊ณ ๊ฑฐ๋ ๋๊ธ ์กฐํํ๊ธฐ
select ugb.title, ugb.board_id, ugr.reply_id, ugr.writer_id, ugr.contents, date_format(ugr.created_date, '%Y-%m-%d')
from used_goods_board as ugb join used_goods_reply as ugr
on ugb.board_id = ugr.board_id
where date_format(ugb.created_date, '%Y-%m') = '2022-10'
order by ugr.created_date, ugb.title
'6๏ธโฃ SQL > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MySQL] Programmers Lv.3 ์ ์ฒด ๋ฌธ์ ํ์ด (2023 ์ ๋ฐ์ดํธ!) (0) | 2023.06.28 |
---|---|
[MySQL] Programmers Lv.2 ์ ์ฒด ๋ฌธ์ ํ์ด (2023 ์ ๋ฐ์ดํธ!) (1) | 2023.06.27 |
[MySQL] Programmers Lv.4 ์ ์ฒด ๋ฌธ์ ํ์ด (0) | 2022.02.02 |
[MySQL] Programmers Lv.3 ์ ์ฒด ๋ฌธ์ ํ์ด (0) | 2022.02.02 |
[MySQL] Programmers Lv.2 ์ ์ฒด ๋ฌธ์ ํ์ด (0) | 2022.02.02 |
๋๊ธ