SQL Oracle: Попытка подсчитать с помощью операторов AND, Новое и требует опытных глаз - PullRequest
0 голосов
/ 30 апреля 2018

Я новичок в SQL, и мне очень повезло, что я все понял, но что-то упустил в этом запросе:

Вопрос состоит в том, как вернуть отчетливое число из двух столбцов, используя другой столбец и критерии, если значение больше 0.

Я пробовал операторы IF и AND (Мой текущий запрос возвращает 0, а не ошибку, и он работает только при использовании одного критерия .shp)

select count (distinct ti.TO_ADDRESS)
from ti
where ti.input_id = 'xxx_029_01z_c_zzzzbab_ecrm.shp'

and ti.input_id = 'xxx_030_01z_c_zzzzbab_ecrm.shp'

and ti.OPENED>0;

Большое спасибо !!

1 Ответ

0 голосов
/ 01 мая 2018

Я думаю, вы хотите два уровня агрегации:

select count(*)
from (select ti.TO_ADDRESS
      from ti
      where ti.input_id in ('xxx_029_01z_c_zzzzbab_ecrm.shp', 'xxx_030_01z_c_zzzzbab_ecrm.shp') and
            ti.OPENED > 0
      group by ti.TO_ADDRESS
      having count(distinct ti.input_id) = 2  -- has both of them
     ) ti;
...