SQL Server を使用しています。datepart 関数を使用して情報を週ごとに並べ替えようとすると、値が返されません。選択した日付範囲のテーブルに値があります。
私が使用しようとしているクエリは次のとおりです。
Declare @StartDate datetime, @EndDate datetime
set @StartDate = '20120401 00:00:00'
set @EndDate = '20120430 23:59:59'
;WITH
mytablePlusHours As
(
SELECT *,
DATEPART(ww, [eci_date]) AS [dateWeek]
FROM [mytable]
)
, mytableHourGroups As
(
SELECT dateWeek,
[eci_country],
COUNT(*) As [Number_Country],
ROW_NUMBER() OVER(PARTITION BY dateWeek ORDER BY [eci_country])
As [Country_Rank]
FROM mytablePlusHours
GROUP BY dateWeek, [eci_country]
)
SELECT
dateWeek AS [eci_date],
[eci_country],
[Number_Country]
FROM mytableHourGroups WITH(NOLOCK)
WHERE [dateWeek] between @StartDate and @EndDate
ORDER BY [dateWeek], [Number_Country] DESC
情報を日単位で取得できますが、週単位で並べ替える方法がわかりません。誰かが私のコードが間違っている場所を教えてもらえますか? ありがとう!
私は自分のデータを次のように表示しようとしています:
Week Country Count
16 United States 13
17 Canada 41