Redshift - ошибка при использовании оператора Case - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь проверить время с момента первого звонка клиенту. Я проверяю это по текущему системному времени, используя инструкцию case.

select sale_id,case when ((CURRENT_TIMESTAMP - min(call_date) >= '500 days' THEN 'more than 500 days'
                    when ((CURRENT_TIMESTAMP - min(call_date) >= '300 days' THEN 'more than 300 days'
                    else 'Less than 300 days' end  as Aging
                    from sales 

Я продолжаю получать сбой при выполнении запроса. Недопустимая операция: синтаксическая ошибка в или "ТОГДА".

Я использую Amazon Redshift DB. Может ли кто-нибудь помочь.

1 Ответ

0 голосов
/ 04 июля 2018

В дополнение к проблеме с круглыми скобками вы также используете min() без group by. Я также сомневаюсь, что sale_id представляет клиента.

Итак, я подозреваю, что вы хотите что-то вроде:

select customer_id,  -- or whatever the right column is
       (case when CURRENT_TIMESTAMP - min(call_date) >= '500 days' then 'more than 500 days'
             when CURRENT_TIMESTAMP - min(call_date) >= '300 days' then 'more than 300 days'
             else 'Less than 300 days'
        end)  as Aging
from sales 
group by customer_id;
...