Вопрос

Вот очень базовый запрос, который я хочу выполнить в базе данных GreenPlum (например, PostgreSQL 8.2.15).

Поле create_date в таблице t - Timestamp W / o часовой пояс. Может кто-нибудь указать мне правильному запросу, чтобы сделать это?Спасибо.

select * from generate_series ((select EXTRACT (YEAR FROM MIN(t1.create_date)) from t1),(select EXTRACT (YEAR FROM MAX(t1.create_date)) from t1))
.

Его бросание ошибки

ERROR:  function generate_series(double precision, double precision) does not exist
.

Линия 1: Выберите * от Generate_Series ((выберите извлечение (год от Mi ... ^ Подсказка: без функции не совпадает с заданным именем и типами аргументов.Возможно, вам понадобится добавить четки явных типов.

Это было полезно?

Решение

Вы можете явные аргументы в целое число:

select *
from generate_series (
    (select EXTRACT (YEAR FROM MIN(t1.create_date)) from t1)::int,
    (select EXTRACT (YEAR FROM MAX(t1.create_date)) from t1)::int
)
.

SQL Widdle Demo >

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top