Я хочу решить проблему сокращения ручного труда в конкретном запросе.Надеюсь, я смогу правильно сформулировать это.
В Netezza я хочу сгенерировать значение (date) и выполнить запрос для каждого указанного значения.Я хочу заменить все союзы в один запрос .
SELECT DISTINCT COUNT(DISTINCT a.x) AS NO_OF_X, a.column1, 'JAN 2019'
FROM my_table a
WHERE 1=1
AND current_date BETWEEN a.date_from and a.date_to
GROUP BY 2,3
UNION ALL
SELECT DISTINCT COUNT(DISTINCT a.x) AS NO_OF_X, a.column1, 'DEC 2018'
FROM my_table a
WHERE 1=1
AND '2018-12-31' BETWEEN a.date_from and a.date_to
GROUP BY 2,3
UNION ALL
SELECT DISTINCT COUNT(DISTINCT a.x) AS NO_OF_X, a.column1, 'NOV 2018'
FROM my_table a
WHERE 1=1
AND '2018-11-30' BETWEEN a.date_from and a.date_to
GROUP BY 2,3
Я хочу сделать что-то вроде этого
SELECT DISTINCT COUNT(DISTINCT a.x) AS NO_OF_X, a.column1, last_day( date ) as "MONTH"
FROM my_table a
WHERE 1=1
AND /*run the query for all last_days in a range */
GROUP BY 2,3
Возможно ли это?Попытка сделать CTE, но действительно важно получить результаты для каждого конкретного последнего дня месяца, потому что наше хранилище данных предназначено для хранения различных временных интервалов для каждой транзакции и т. Д. И я хочу получать только транзакции с временными срезами для определенногоlast_day ().
Приветствия.