나는 그룹화 기준에 따라 그룹화 된 일부 날짜 및 시간 속성이있는 테이블을 보유하고 있고 일부는 집계하며, 쿼리는 지난 주 고객 당 수익을 얻는 것과 같습니다. 이제 요청 된 기간과 이전 기간 사이의 변경 사항을보고 싶습니다. 따라서 revenue 및 previous_revenue라는 두 개의 열이 생깁니다.다른 필드에 따라 집계 된 값
지금 당장 요청한 기간의 행에 이전 기간의 행을 더한 행을 요청하고 집계 된 각 필드에 대해 값을 반환하는 case 문을 추가하거나 원하는 기간에 0이 아닌 경우 0을 반환합니다.
집계 필드만큼 많은 사례가 있지만 항상 동일한 조건문을 사용합니다.
이 사용 사례에 대한 더 나은 디자인이 있는지 궁금 해요 ...
SELECT
customer,
SUM(
CASE TIMESTAMP_CMP('2016-07-01 00:00:00', ft.date) > 0 WHEN true THEN
REVENUE
ELSE 0 END
) AS revenue,
SUM(
CASE TIMESTAMP_CMP('2016-07-01 00:00:00', ft.date) < 0 WHEN true THEN
REVENUE
ELSE 0 END
) AS previous_revenue
WHERE date_hour >= '2016-06-01 00:00:00'
AND date_hour <= '2016-07-31 23:59:59'
GROUP BY customer