[sqlite] 3일차

쥬쥬스·2024년 1월 29일
0

SQL

목록 보기
65/67
post-thumbnail
  1. 많이 주문한 테이블 찾기
    ☁️ group by를 사용하지 않고 집계함수를 사용해야하는 경우, 서브쿼리를 사용할 수 있다.
select *
from tips
where total_bill> (select avg(total_bill)
                   from tips)
  1. 레스토랑의 일일 평균 매출액 계산하기
    ☁️ 출력을 통해서 요일이 몇개인지 안다면, 숫자를 직접 입력할 수 있겠지만 번거로운 과정이고 불필요한 작업이 될 수 있다. 따라서 요일의 중복을 제거하고 개수를 세므로 숫자를 대신할 수 있다.
-- 1번째
select round(sum(total_bill)/4,2) avg_sales
from tips
-- 2번째
select round(sum(total_bill)/count(DISTINCT(day)),2) avg_sales
from tips
  1. 레스토랑의 영업일
select DISTINCT(day) day_of_week
from tips

2️⃣ 난이도 2 _문제 해결

2-1. 두 테이블 결합하기

select DISTINCT(r.athlete_id)
from  (select id
    from events
    where sport = "Golf") as e inner join records r
    on r.event_id = e.id

2-2. 레스토랑 웨이터의 팁 분석

select day, time, round(avg(tip),2) avg_tip, round(avg(size),2) avg_size
from tips
group by day, time
order by day, time

2-3. 일별 블로그 방문자 수 집계

select event_date_kst as dt, count(DISTINCT(user_pseudo_id)) as users
from ga
where event_date_kst>= '2021-08-02' and event_date_kst<='2021-08-09'
group by event_date_kst

2-4. 우리 플랫폼에 정착한 판매자 2

select seller_id, count(distinct(order_id)) as orders
from olist_order_items_dataset
where price>=50
group by seller_id
having count(distinct(order_id))>=100
order by orders desc

2-5. 레스토랑의 일일 매출

select day, sum(total_bill) revenue_daily
from tips
group by day
having sum(total_bill) >= 1000
order by revenue_daily desc
profile
느려도... 꾸준히.....🐌

0개의 댓글