У меня есть таблица с интервалами времени от даты a
до даты b
. Интервалы в 30 минут такие:
2021-02-22 00:00:00.000
2021-02-22 00:30:00.000
2021-02-22 01:00:00.000
2021-02-22 01:30:00.000
2021-02-22 02:00:00.000
2021-02-22 02:30:00.000
2021-02-22 03:00:00.000
[...]
2021-03-21 23:30:00.000
Я должен проверять, есть ли записи каждые 30 минут от моего MIN(date) = 2021-02-22 00:00:00.000
до моего MAX(date) = 2021-03-21 23:30:00.000
.
COUNT()
для записей за каждую календарную неделю равно 336
. 30 минут в день * 7 дней в неделю = (24 * 2) * 7).
Я попытался проверить, есть ли 336 записей для каждой календарной недели, но если одна запись отсутствует, а одна существует дважды, количество составляет 336. , но результат неверный.
SELECT *
FROM (
SELECT a,
b,
DATEPART(iso_week, interval_datetime) AS cw,
COUNT(id) AS counts
FROM data_table
GROUP BY DATEPART(iso_week, interval_datetime),
a,
b
) AS xyz
WHERE counts <> 336;
Есть ли другой способ проверить наличие двойных записей и проверить, используется ли каждая 30-минутная запись? Может быть, без даты таблицы.
Спасибо!