Я пытаюсь использовать PRECEDING
и FOLLOWING
в дальнем месяце со следующим кодом
WITH tmp1 AS (
SELECT location.city, date.date, COUNT(*) OVER W
FROM fact, crime, date, location
WHERE fact.location_key = location.location_key and crime.crime_key =
fact.crime_key and fact.date_key = date.date_key
WINDOW W AS (
PARTITION BY location.city, date.year
ORDER BY date.month
RANGE BETWEEN INTERVAL '1 month' PRECEDING
AND INTERVAL '1 month' FOLLOWING
))
Я получил сообщение об ошибке:
RANGE with offset PRECEDING/FOLLOWING is not supported for column type integer and offset type interval
Я предполагаю, что это потому, что мой date.month
имеет тип integer
Поэтому я попытался преобразовать свой столбец date.month
в формат даты типа MM
Я попытался выполнить следующие действия:
ALTER TABLE date ALTER COLUMN month TYPE text
using to_date(month, 'MM');
и выдает ошибку
No function matches the given name and argument types. You might need to add explicit type casts.
Мой вопрос
Как преобразовать date.month
в тип, который можно использовать с командами PROCEDING
и FOLLOWING
?
Я предполагаю, что этот тип date
с форматом MM
. Вот почему я попробовал приведенный выше код
Спасибо!