SQL

SQL 프로그래머스 쿼리테스트

Black940514 2024. 3. 20. 22:18
  1. US E-Commerce Records 2020 데이터셋은 미국 이커머스 웹사이트의 판매 데이터 입니다. records 테이블은 주문 번호, 주문 날짜, 주문 지역, 카테고리 등 주문의 상세 정보를 담고 있습니다. 이 데이터를 이용하여 미국의 각 지역별로 어떤 카테고리의 상품이 많이 판매되는지 알아보려고 합니다. region, category 별 주문량을 계산해 출력하는 쿼리를 작성해주세요.
select region, count(DISTINCT case 
                     WHEN category = 'Furniture'
	                   THEN order_id END) AS Furniture,
               count(DISTINCT case 
            WHEN category = 'Office Supplies'
	          THEN order_id END) AS 'Office Supplies',
                count(DISTINCT case 
            WHEN category = 'Technology'
	          THEN order_id END) AS Technology
from records
group by region

  • 가구 판매의 비중이 높았던 날 찾기
select order_date, furn as furniture, furn*100/whole furniture_pct
from (select order_date, count(distinct(order_id)) whole
      from records
      where order_date IN (
                           select
                              order_date
                           from
                              records
                           group by
                              order_date
                           having
                              count(distinct(order_id)) >= 10)
      group by order_date)
join (select order_date, count(distinct(order_id)) furn
      from records  
      where category = 'Furniture'
      group by order_date) b
using (order_date)
where furn*100/whole >= 40
order by furniture_pct desc, order_date asc

- 같은 Order_date에 같은 Order_id가 있음 Order_id에 각각의 상품들이 있었음

 

  • 헤비 유저가 소유한 장소
  • select * from places where host_id IN (select host_id from places group by host_id having count(*)>=2) order by id asc
  • 우유와 요거트가 담긴 장바구니
    select distinct(a.cart_id)
    from cart_products a
    join (select *
    from cart_products
    where name = 'milk') b
    on a.cart_id = b.cart_id
    where a.name = "yogurt" and b.name = "milk"
    
    #MILK가 담겨있는 카트
    WITH 
    MILK AS (SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk')
    
    #Milk 이면서 Yogurt
    SELECT CART_ID
    FROM CART_PRODUCTS
    WHERE NAME = 'Yogurt' AND CART_ID IN (SELECT CART_ID FROM MILK)
    ORDER BY 1
    

 

'SQL' 카테고리의 다른 글

카카오 쿼리테스트 5문제  (3) 2024.03.21
SQL 실습 - date_timestamp_interval  (0) 2024.03.21
고급 SQL 실습 - 웹 접속 및 사용 분석  (0) 2024.03.20
SQL - Join & Group by  (0) 2024.03.20
SolveSQL & 캐글 파이썬 필사  (0) 2024.03.19