如何从交易表中找到活跃卖家的数量

时间:2019-01-05 01:41:56

标签: sql sql-server

从下表中查找2017年6月每天的活跃卖家数。卖家在交易日期后的最近30天内列出了至少一件商品,则被视为活跃卖家。

样本表:

enter image description here

1 个答案:

答案 0 :(得分:0)

一种方法是生成日期并使用横向联接来计算卖家数量:

with dates as (
      select cast('2017-06-01' as date) as dte
      union all
      select dateadd(day, 1, dte)
      from dates
      where dte < '2017-06-30'
     )
select d.dte, t.num_sellers
from dates d outer apply
     (select count(distinct t.seller_id) as num_sellers
      from t
      where t.transaction_date > dateadd(day, -30, d.dte) and
            t.transaction_date <= d.dte
     ) t
order by d.dte;