Я использую SQL Server. Когда я пытаюсь сортировать информацию по неделям, используя функцию datepart, она не возвращает никаких значений. В моей таблице есть значения для выбранного диапазона дат.SQL Server - Сортировка по дням недели
Запрос Я пытаюсь использовать это:
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
Так вы говорите, это не чествование 'ORDER BY [dateWeek]'? Вы имели в виду также сортировать по странам? –
@AaronBertrand сравнивает значения int week to date, что приводит к отфильтровыванию всех строк. – JNK
А, так нет НИКАКОЙ строк. Я думал, что есть строки, которые не были отсортированы правильно. –