У меня есть таблица ниже.
create table timeTest(id, datetime)
insert into timeTest
values (1, '2010-12-31 23:59:11.000'),
(2, '2011-01-01 00:01:11.000'),
(3, '2011-01-01 00:02:11.000'),
(4, '2011-01-01 01:05:11.000')
Я хочу создать номер группы для каждого указанного c часа в атрибуте datetime
. Таким образом, каждый час каждого года, месяца и дня должен быть уникальным. Я пробовал это с помощью запроса ниже. Но этот запрос дает только значение «1» для каждой строки.
SELECT
id, datetime,
DENSE_RANK() OVER (ORDER BY datepart(year, (datepart(month,datepart(day, datepart(hour, datetime)))))) AS hourNumber
FROM
timeTest
ORDER BY
hourNumber
Желаемый результат должен быть:
id datetime hourNumber
--------------------------------------------
1 2010-12-31 23:59:11.000 0
2 2011-01-01 00:01:11.000 1
3 2011-01-01 00:02:11.000 1
4 2011-01-01 01:05:11.000 2