2011-01-17 11 views
0

私は、日付とスコアの2つの列を持つテーブルを持っています。個々の事 時間の経過に伴うSQLの傾向

今日のよう合計

  • ...
  • 6日前のよう

    • 合計7日前のよう
    • 合計:私のような何かを見つけたいですが見つかりました

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

      しかし、私は実行する必要はありません毎回新しいクエリ。

      (私はジャンゴを使用していますが、純粋なSQLソリューションが細かすぎる。)

    答えて

    0

    ユースケース・ステートメントを使用すると、気に各値を合計します。

    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. 
    
    +0

    私は、ちょうどbajillionのケースステートメントを置くよりもエレガントな方法があると考えていました。しかたがない。 – Xodarap

    +1

    @ Xodarap日ごとの集計とグループ化はどうですか?その後、コードを読んで結果を毎日追加します。 – jzd

    関連する問題