У меня есть таблица А, которая выглядит, как этотРЕГИСТРИРУЙТЕСЬ несколько строк для нескольких столбцов в одной строке Netezza/Postgres
Date Name Value
----------------------------
2015-01-01 A 12
2015-01-01 B 13
2015-01-01 C 10
2015-01-01 D 9
2015-01-01 E 15
2015-01-01 F 11
2015-01-02 A 1
2015-01-02 B 2
2015-01-02 C 3
2015-01-02 D 4
2015-01-02 E 5
2015-01-02 F 6
2015-01-03 A 7
2015-01-03 B 8
2015-01-03 C 9
2015-01-03 D 10
2015-01-03 E 15
2015-01-03 F 16
....
, который содержит значение для каждого имени в течение каждого дня. Мне нужен второй стол, который выглядит следующим образом
Date Name ValueDate ValueDate+1 ValueDate+2
--------------------------------------------------------------
2015-01-01 A 12 1 7
2015-01-01 B 13 2 8
2015-01-01 C 10 3 9
2015-01-01 D 9 4 10
2015-01-01 E 15 5 15
2015-01-01 F 11 6 16
2015-01-02 A 1 7 ...
2015-01-02 B 2 8 ...
2015-01-02 C 3 9 ...
2015-01-02 D 4 10 ...
2015-01-02 E 5 15 ...
2015-01-02 F 6 16 ...
Я попытался создать промежуточную таблицу, которая имеет все даты введены правильно
Date Name ValueDate ValueDate+1 ValueDate+2
----------------------------------------------------------------
2015-01-01 A 2015-01-01 2015-01-02 2015-01-03
2015-01-01 B 2015-01-01 2015-01-02 2015-01-03
2015-01-01 C 2015-01-01 2015-01-02 2015-01-03
2015-01-01 D 2015-01-01 2015-01-02 2015-01-03
2015-01-01 E 2015-01-01 2015-01-02 2015-01-03
2015-01-01 F 2015-01-01 2015-01-02 2015-01-03
...
Моя идея тогда была использовать какой-то из JOIN на столе в к отобразить на нужные значения с датами и использовать s.th как
CASE WHEN Date = ValueDate THEN Value ELSE NULL END AS ValueDate+1
Я изо всех сил, чтобы понять, как это может быть сделано в SQL. Мне по существу нужны все значения над окном для начальной последовательности дат. Чтобы дать некоторый фон, я хочу видеть на регулярном временном интервале, как значение ведет себя в следующие x дней. Datatypes - это Date для всех столбцов Date, Varchar для имени и числа для значений. Значение ValueDate + 1 и +2 означает +1/2 дня. Также нельзя исключать, что количество имен остается постоянным с течением времени.
благодарит
Для меня это два левых соединения и стержень.если ваша [версия netezza] (http://www-01.ibm.com/support/docview.wss?uid=swg21669899) поддерживает 'поворот' ... вам может потребоваться использовать динамический sql для генерации имен дат как заголовок столбца, особенно если число столбцов является переменным. – xQbert