AWS Kinesis SQL Analytics - Выберите поле на основе другого поля в окне - PullRequest
0 голосов
/ 08 апреля 2020

Есть ли способ выбрать поле на основе, скажем, мин / макс поля над окном?

Например, рассмотрим приведенный ниже пример; как найти значение TIMESTAMP_OF() min тикера над окном?

CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
ticker_symbol    VARCHAR(4), 
ticker_min    DOUBLE, 
ticker_min_time    TIMESTAMP,
ticker_max    DOUBLE, 
ticker_max_time    TIMESTAMP,
event_time       TIMESTAMP,
ticker_count     DOUBLE);

CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
  INSERT INTO "DESTINATION_SQL_STREAM" 
    SELECT STREAM 
        TICKER_SYMBOL,
        MIN(TICKER_VAL) AS ticker_min,
        MAX(TICKER_VAL) AS ticker_max,
        TIMESTAMP_OF(MIN(TICKER_VAL)) AS ticker_min_time,
        TIMESTAMP_OF(MAX(TICKER_VAL)) AS ticker_max_time,
        FLOOR(EVENT_TIME TO MINUTE),
        COUNT(TICKER_SYMBOL) AS ticker_count
    FROM "SOURCE_SQL_STREAM_001"
    WINDOWED BY STAGGER (
            PARTITION BY FLOOR(EVENT_TIME TO MINUTE), TICKER_SYMBOL RANGE INTERVAL '1' MINUTE);
...