0
私は7日間の期間内にアイテムの数を取得しようとしていますが、その7日間の最初の日付をまだ報告することができます。私がこれまでに来て最も近いTransact-SQLの週単位でグループ化
WITH w (w, n)
AS
(
SELECT MIN(CAST(CreatedDate AS DATE))
OVER(
PARTITION BY DATEPART(WEEK, CAST(CreatedDate AS DATE))
ORDER BY DATEPART(WEEK, CAST(CreatedDate AS DATE))
)
,COUNT(*)
FROM dbo.Tbl
WHERE
CreatedDate >= CAST(DATEADD(MONTH,-6,GETDATE()) AS DATE)
GROUP BY CAST(CreatedDate AS DATE)
)
SELECT w.w AS [Week of], SUM(w.n) AS [Items]
FROM w
GROUP BY w.w
ORDER BY 1 DESC
である。しかし、これは残念ながら今年の最初または最後の週のために動作しません。また、日付範囲が一年以上含まれている場合は動作しません。
この期間に最初の日付をまだ取得できている間に、7日間にグループ化する方法はありますか?
代わりDATEPARTを使用するのでは、開始日から数週間のDATEDIFFを使用します。例えば – ZLK
@ZLKこれは、サーバーの '@@ DATEFIRST'値が分析に必要な7日間の開始に対応する場合にのみ機能します。実際に@iamdave – iamdave
。それはdatediff(day ...)/ 7でなければなりません – ZLK