【问题标题】:SQL trend over timeSQL 随时间变化的趋势
【发布时间】:2011-01-17 23:18:42
【问题描述】:

我有一个包含两列的表格,日期和分数。我想找到类似的东西:

  • 7 天前的总和
  • 截至 6 天前的总和
  • ...
  • 截至今天的总和

可以找到一个单独的东西

select sum(score) from my_table
where date <= DateAdd("d", -1, getdate) 

但我不想每次都运行新查询。

(我使用的是 django,但纯 SQL 解决方案也可以。)

【问题讨论】:

    标签: sql django django-models


    【解决方案1】:

    用案例陈述总结您关心的每个值。

    SELECT 
    (CASE WHEN date <= DateAdd("d", -1, getdate) THEN score ELSE 0 END) as sum1,
    (CASE WHEN date <= DateAdd("d", -2, getdate) THEN score ELSE 0 END) as sum2, etc.
    

    【讨论】:

    • 我希望有一种更优雅的方式,而不是仅仅放置一个 bajillion 案例陈述。哦,好吧。
    • @Xodarap 按天求和和分组怎么样。然后在代码中,当您阅读结果时每天添加。
    猜你喜欢
    • 2013-07-21
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    相关资源
    最近更新 更多