2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents
SELECT
visited_on,
(
SELECT SUM(amount)
FROM customer
WHERE visited_on BETWEEN DATE_SUB(c.visited_on, INTERVAL 6 DAY) AND c.visited_on
) AS amount,
ROUND(
(
SELECT SUM(amount) / 7
FROM customer
WHERE visited_on BETWEEN DATE_SUB(c.visited_on, INTERVAL 6 DAY) AND c.visited_on
),
2
) AS average_amount
FROM customer c
WHERE visited_on >= (
SELECT DATE_ADD(MIN(visited_on), INTERVAL 6 DAY)
FROM customer
)
GROUP BY visited_on;
select distinct visited_on,
sum(amount) over w as amount,
round((sum(amount) over w)/7, 2) as average_amount
from customer
WINDOW w AS (
order by visited_on
range between interval 6 day PRECEDING and current row
)
Limit 6, 999
'프로그래밍 > SQL, Hive, SAS 관련 정보' 카테고리의 다른 글
[SQL 기초] Sub-query Scope (0) | 2025.04.13 |
---|---|
[SQL 기초] CTE와 Sub-query의 차이 (0) | 2025.04.13 |
[SQL 기초] Group by와 Window함수의 동시사용 (0) | 2025.04.13 |
[SQL문제풀이-Groupby/Subquery] Movie Rating (0) | 2025.04.13 |
[SQL문제풀이-Union활용] Count Salary Categories (0) | 2025.04.09 |