sql вложенные «сумма (случай, когда) или« запрос выбора - PullRequest
2 голосов
/ 10 января 2020

У меня есть запрос на выборку, в котором я пытаюсь суммировать значение на основе нескольких критериев, сгруппированных по измерению. Выходными данными будет сумма времени, превышающего 30, 90 или 365 дней, в зависимости от категории, сгруппированной по категориям. Я не могу разобрать синтаксис для этого, я надеюсь, что вы можете помочь!

Концепция выглядит примерно так:

select
CATEGORY,
sum (case when 
        (CATEGORY = '1' and TIME >30) then sum (TIME - 30) or 
        (CATEGORY = '2' and TIME >90) then sum (TIME - 90) or
        (CATEGORY = '3' and TIME >365) then sum (TIME - 365) else 0 end) as output
from database.table
group by CATEGORY

Заранее спасибо!

1 Ответ

1 голос
/ 10 января 2020

Я подозреваю, что вам нужен следующий синтаксис:

select CATEGORY,
       sum(case when CATEGORY = '1' and TIME > 30 then TIME - 30 
                when CATEGORY = '2' and TIME > 90 then TIME - 90
                when CATEGORY = '3' and TIME > 365 then TIME - 365
                else 0
           end) as output
from database.table
group by CATEGORY
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...