Итак, у меня есть запрос, который использует GETDATE() в предложениях WHERE
и HAVING
:
SELECT GETDATE(), COUNT(*) FROM (
SELECT 1 FROM events
WHERE (event_time > (GETDATE() - interval '25 hours'))
GROUP BY id
HAVING MAX(event_time) BETWEEN (GETDATE() - interval '25 hours') AND (GETDATE() - interval '24 hours')
)
Я в основном пытаюсь найти количество уникальных id
, у которых есть свои последние event_time
между 25 и 24 часами назад по отношению к текущему времени.
Проблема: у меня есть другая таблица query_dts
, которая содержит один столбец, содержащий метки времени. Вместо того, чтобы запускать приведенный выше запрос в текущее время, используя GETDATE()
, мне нужно выполнить отметку времени каждой записи таблицы query_dts
. Есть идеи?
Примечание. На самом деле я нигде не храню query_dts
. Я создал его следующим образом:
WITH query_dts AS (
SELECT (
DATEADD(hour,-(row_number() over (order by true)), getdate())
) as n
FROM events LIMIT 48
),
который я получил из здесь