У меня есть улей-таблица, содержащая данные о транзакциях вида (сильно упрощены)Как выбрать последние NON-NULL значения каждого столбца в улей раздела
id Status Value UpdatedTimeStamp
515 Open 1 2014-05-08T11:43:27
516 Open NULL 2014-05-08T11:43:27
515 Answered 1 2014-05-09T11:43:27
515 Closed NULL 2014-05-10T11:43:27
517 Open NULL 2014-05-09T11:43:27
516 Closed NULL 2014-05-09T11:43:27
Для моего потребительной случае, мне нужно выводимая таблица, содержащая уникальные идентификаторы с номерами столбцов в качестве последнего значения, отличного от NULL, в этом столбце для этого конкретного идентификатора при сортировке по метке времени.
Таким образом, желаемый результат:
id Status Value UpdatedTimeStamp
515 Closed 1 2014-05-10T11:43:27
516 Closed NULL 2014-05-09T11:43:27
517 Open NULL 2014-05-09T11:43:27
Я пытаюсь добиться того, что при использовании функций окна на разделы
INSERT OVERWRITE TABLE testSample2 SELECT id, FIRST_VALUE (Status) OVER SortedData, FIRST_VALUE (Value IGNORE NULLS) OVER SortedData, FIRST_VALUE (UpdatedTimeStamp) OVER SortedData FROM testSample WINDOW SortedData (PARTITION BY id ORDER BY UpdatedTimeStamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING);
Это дает мне NullPointerException (Возможно, ИГНОРИРУЙТЕ NULLS пока не поддерживается в улье). Пожалуйста, предложите мне, как взять последнее значение, отличное от NULL.
Если вы выбираете «последний Non-NULL» значение по отношению к каждому идентификатору, то почему есть 'значения NULL' в вашем желаемого результата? – gobrewers14
есть значения NULL, если для определенного queryID нет значения, отличного от NULL. – Prashasti
Как вы говорите иначе, чем «Последняя величина для каждого идентификатора». ? – gobrewers14