使用间隔汇总前一天的值

时间:2019-11-05 09:25:05

标签: sql postgresql

我试图在一个case语句中使用Max(date)汇总当天的数字,并使用-interval汇总前一天的数字。

select

product
  , sum(
    case
      when date_started = max(date_started)
        then volume
    end
  )
  as "Current day's Volume"
  , sum(
    case
      when date_started = max(date_started)
        then revenue
    end
  )
  as "Current day's Revenue"
  , sum(
    case
      when date_started = (max(date_started) - interval '1 day' then volume end) as "Current day's Volume"
      , sum(
        case
          when date_started = (max(date_started) - interval '1 day' then revenue end) as "Current day's Revenue"
        from
          [lifetime_data]

       group by
          1

这是在PostgreSQL上。它不起作用,对我来说也没有明显的错误。

1 个答案:

答案 0 :(得分:0)

没有“明显”错误。您看起来不够近。您的第一个汇总是:

sum(case when date_started = max(date_started)
^ aggregation function   ----^ nested aggregation function
        then volume
    end)

您具有嵌套的聚合功能。这是不允许的。

这回答了有关错误是什么的问题。

目前还不清楚您要完成什么。如果您需要帮助解决该查询,请提出一个 new 问题。提供示例数据,所需的结果以及您要实现的逻辑的说明。