[LeetCode-SQL 50] 1321. Restaurant Growth

코린이·2025년 6월 17일

SQL 문제 풀이 (MySQL)

목록 보기
86/96

❓ 문제

Customer
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| customer_id   | int     |
| name          | varchar |
| visited_on    | date    |
| amount        | int     |
+---------------+---------+

SQL에서 (customer_id, visited_on)은 이 테이블의 기본 키입니다.
이 테이블에는 레스토랑의 고객 거래에 대한 데이터가 포함되어 있습니다.
visited_on은 ID(customer_id)를 가진 고객이 레스토랑을 방문한 날짜입니다.
amount는 고객이 지불한 총 금액입니다.

여러분은 레스토랑 소유자이며 가능한 확장을 분석하려고 합니다(매일 최소 한 명의 고객이 있을 것입니다).

7일 동안(즉, 현재일 + 6일 전) 고객이 결제한 금액의 이동 평균을 계산합니다. 평균_금액은 소수점 둘째 자리에서 반올림해야 합니다.

방문한_온을 기준으로 오름차순으로 정렬된 결과 테이블을 반환합니다.

자세한 문제 내용은 사이트 참고...


❗️ 문제 풀이

select
    visited_on
    , ( select sum(amount) as total_sum
        from Customer
        where visited_on between date_add(A.visited_on, interval - 6 DAY) and A.visited_on
    ) as amount
    , round((
        select sum(amount)/7 as total_sum
        from Customer
        where visited_on between date_add(A.visited_on, interval - 6 DAY) and A.visited_on
    ), 2) as average_amount
from Customer A
where visited_on in (
    select B.visited_on 
    from Customer A join Customer B
    on A.visited_on = date_add(B.visited_on, interval - 6 DAY)
)
group by visited_on
;

🔗 Reference

https://leetcode.com/problems/restaurant-growth/description/?envType=study-plan-v2&envId=top-sql-50

0개의 댓글