0

以下のコードを使用して、各週の合計エントリを取得できます。

select week(date_created) as week, count(distinct tag_code) as Total_This_Week 
from entries 
where date_created between '2000-01-01' and '2020-01-01' 
group by week; 

しかし、私が取得する必要があるのtotal_last_6_weeksは、前の6週間を合計した以下のような列です。したがって、6週目total_Last_6_weeksは、合計(56 + 45 + 85 + 34 + 85 + 65)によって「370」が取得されます。そして、これは毎週発生する必要があるため、第9週については、過去6週間を合計する必要があります。私が試したすべてがうまくいかないようです。

+-----+-----------------+--------------------+ 
| week| Total_This_Week | total_Last_6_Weeks | 
+-----+-----------------+--------------------+ 
|__0__|_______81________|_______ 122________ | 
|__1__|_______65________|________188________ | 
|__2__|_______85________|________145_________| 
|__3__|_______34________|________205_________| 
|__4__|_______85________|________189_________| 
|__5__|_______45________|________112_________| 
|__6__|_______56________|________370_________| 
|__7__|_______32________|________518_________| 
|__8__|_______34________|________121_________| 
|__9__|_______45________|________224_________| 
+-----+-----------------+--------------------+ 
4

1 に答える 1

1

SQL Server または Oracle ではdate_created、6 週間遅れて使用できます。

    over (partition by ...)

累積合計を取得しますが、差はローリング ベースで 6 週間の合計になります。パーティション以降は直接存在しないため、MySQLでは変数を使用してこれを実行できることを理解しています。その方法を簡単にまとめると、次のようになります。

ROW_NUMBER、MySQL のパーティション以上

于 2012-06-01T12:43:40.620 に答える