如何将以下查询转换为每周总和

How to convert the following query to give sum per week

这是计算每天总时间的长查询的一部分。我想更改它以给我每周的总时间。任何的想法?要检查长查询,请单击 Here

INSERT INTO @test (
    activity
    ,DATE
    ,TimePerDay
    )
SELECT activity
    ,Cast(starttime AS DATE) AS DATE
    ,SUM(datediff(second, starttime, endtime)) / 60.0 AS TimePerDay
FROM cte WITH (NOLOCK)
WHERE starttime >= dateadd(week, @LastXWeeks, last_update)
GROUP BY activity
    ,cast(starttime AS DATE)

例如,您可以这样做:

SELECT activity
    ,DATEADD(wk, DATEDIFF(wk,0,Cast(starttime AS DATE)), 0) AS Week
    ,SUM(datediff(second, starttime, endtime)) / 60.0 AS TimePerDay
FROM cte WITH (NOLOCK)
WHERE starttime >= dateadd(week, @LastXWeeks, last_update)
GROUP BY activity
    ,DATEADD(wk, DATEDIFF(wk,0,Cast(starttime AS DATE)), 0)

您可能需要根据一周的实际开始日期调整代码。这适用于周一至周日。