Имея тщательное исследование Google, кажется, что Vertica DB просто не поддерживает count (distinct ) over(), поскольку это вызывает:
«Ошибка 4249: разрешено использовать DISTINCT только MIN/MAX … Мин / макс позволены использовать определенное»
Я ищу легкую прогулку для этого.
Тем временем, я использую соединения или вложенные запросы.
Например:
select campaign_id, segment_id, COUNT(DECODE(rank, 1, 1, NULL)) over()
from (select campaign_id, segment_id, row_number() over(partition by segment_id) rank
from cs)
Но мой запрос очень длинный, и мне нужно изобретать трюки по всему пути. Есть идеи для лучшего подхода?
Спасибо!
(Работает в HPE? Пожалуйста, реализуйте это, как вы сделали для всех общих аналитических функций!)
Я должен был сделать что-то похожее вложенную структуру подсчета для подсчета различных значений кумулятивно, в диапазоне дат. Это свелось к аналогичному сбору row_number () = 1 строк, хотя я использовал case:
Смотреть на него было неприятно, но, к счастью, не слишком медленно.
Да, я думаю, что это просто происходит, когда вы сталкиваетесь с отсутствующими функциями.