제품별로 월별로 매출을 기록하는 데이터 세트가 있습니다. 나는과 같이 회원으로 수익을 요약 할 수 있습니다오라클 SQL의 월별 변화량 계산
select sum(revenue), member, month from member_revenue group by member, month
나는 달의 변화에 달 계산할 멤버에 의하여 수익이며, 이상적으로는 두 번째 테이블의 데이터를 호출 할 필요없이.
제품별로 월별로 매출을 기록하는 데이터 세트가 있습니다. 나는과 같이 회원으로 수익을 요약 할 수 있습니다오라클 SQL의 월별 변화량 계산
select sum(revenue), member, month from member_revenue group by member, month
나는 달의 변화에 달 계산할 멤버에 의하여 수익이며, 이상적으로는 두 번째 테이블의 데이터를 호출 할 필요없이.
그냥 lag()
을 사용합니다 :
select member, month, sum(revenue) as this_month_revenue,
lag(sum(revenue)) over (partition by member order by month) as last_month_revenue
from member_revenue
group by member, month;
참고 : 모든 월에 수익이 있다고 가정합니다. LAG()
은 이전 달이 아니더라도 이전 행의 수익을 얻습니다.
당신은 내부 쿼리로 당신이 이미 가지고있는 쿼리를 사용하고 lag
윈도우 기능을 사용하여 각 달, 지난 달의 수익을 빼는 외부 쿼리로 포장 할 수 있습니다
SELECT member,
month,
month_revenue,
month_revenue -
LAG(month_revenue) OVER (PARTITION BY member
ORDER BY month ASC) AS revenue_change
FROM (SELECT member, month, SUM(revenue) AS month_revenue
FROM member_revenue
GROUP BY member, month) t
감사합니다. 약간의 업데이트는 '월별'문구에서 '월별'문구를 생략해야한다고 생각합니다. –
@JamieEdgecombe 물론 맞습니다. 얼마나 창피한가. 수정 및 수정 됨. – Mureinik
오라클의 버전은 무엇입니까? – Ditto
Oracle SQL 개발자 4.0.1 –