[기록용] 프로그래머스_SQL_JOIN 부분

ssook·2022년 10월 12일
0

SQL_Programmers_

목록 보기
2/5
post-thumbnail

프로그래머스 SQL 고득점 키트 문제 6개(22년 10월 12일 기준) 문제풀이 기록
엥 오늘 보니까 join 파트에 2문제가 추가적으로 업데이트 되어 있다...?!

프로그래머스 SQL 고득점 키트 문제 6개(22년 10월 13일 기준) 문제풀이 기록


1. 그룹별 조건에 맞는 식당 출력하기

select member_profile.member_name, review_text, substr(review_date,1,10) as review_date
from rest_review join member_profile on member_profile.member_id = rest_review.member_id
where rest_review.member_id = (
    select member_id
    from rest_review
    group by member_id
    having count(member_id)
    order by count(member_id) desc limit 1
    )
order by review_date asc

2. 5월 식품들의 총 매출 조회하기

select food_product.product_id, product_name, sum(price * amount)as total_sales
from food_product join food_order on food_product.product_id = food_order.product_id
where year(produce_date) = 2022 and month(produce_date) = 5 
group by product_id
order by total_sales desc, product_id asc

3. 없어진 기록 찾기

select animal_outs.animal_id, animal_outs.name
from animal_outs left join animal_ins on animal_outs.animal_id = animal_ins.animal_id
where animal_ins.animal_id is null
  • outer join은 반드시 on 외래키가 필수
  • animal_outs에는 있지만, animal_ins에는 없는 정보가 유실된 정보이므로 where 절에 추가.

4. 있었는데요 없었습니다.

select animal_ins.animal_id, animal_ins.name
from animal_ins join animal_outs on animal_ins.animal_id = animal_outs.animal_id
where animal_ins.datetime > animal_outs.datetime
order by animal_ins.datetime asc

5. 오랜 기간 보호한 동물 (1)

select animal_ins.name, animal_ins.datetime
from animal_ins left join animal_outs on animal_ins.animal_id = animal_outs.animal_id
where animal_outs.datetime is null
order by animal_ins.datetime asc limit 3

6. 보호소에서 중성화한 동물(2)

select animal_outs.animal_id, animal_outs.animal_type, animal_outs.name
from animal_outs left join animal_ins on animal_outs.animal_id = animal_ins.animal_id
where substr(animal_ins.sex_upon_intake,1,6) = 'Intact' and
animal_ins.sex_upon_intake != animal_outs.sex_upon_outcome

7. 상품별 온라인 매출 구하기

select product_code, sum(amount*price) as sales
from product join
(select product_id, sum(sales_amount) as amount
from offline_sale
group by product_id 
) as amount_table on product.product_id = amount_table.product_id
group by product.product_id
order by sales desc, product.product_code asc
profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글