Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Несколько вычислений в одном запросе  [new]
*Ann*
Member

Откуда:
Сообщений: 94
Добрый день.
Есть такой запрос:
select
eah.mrf_id,
count(eah.orponid)

from public.ent_as_house eah
JOIN public.ent_as_addrobj eaa on eah.parent_id = eaa.id

where eah.livestatus = 1
and eah.parent_id is not null
and exists (select 1 from public.ent_id_vs_o_add where house_id=eah.id)
and eah.adr_adm_ter is not null
and eah.coordinates_id is not null

group by eah.mrf_id

Подскажите, пожалуйста, как добавить еще один столбец, в котором также будет считаться count(eah.orponid), но без условия eah.coordinates_id is not null
6 мар 19, 14:53    [21826368]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вычислений в одном запросе  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1467
*Ann*,

Изначально выбирать без этого условия и считать полный (безусловный) агрегат. Условный считать через sum(case when <ваше условие с проверкой поля на из нулл > then 1 else 0 end)
6 мар 19, 15:01    [21826378]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вычислений в одном запросе  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
Count игнорует значения null. Поэтому можно так:

select
eah.mrf_id,
count(eah.orponid|eah.coordinates),  
count(eah.orponid)

from public.ent_as_house eah
JOIN public.ent_as_addrobj eaa on eah.parent_id = eaa.id

where eah.livestatus = 1
and eah.parent_id is not null
and exists (select 1 from public.ent_id_vs_o_add where house_id=eah.id)
and eah.adr_adm_ter is not null
[s]and _id is not null[/s]
7 мар 19, 06:44    [21826907]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вычислений в одном запросе  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
Пытался зачеркнуть последнюю строчку условия

select
eah.mrf_id,
count(eah.orponid|eah.coordinates_id),  
count(eah.orponid)

from public.ent_as_house eah
JOIN public.ent_as_addrobj eaa on eah.parent_id = eaa.id

where eah.livestatus = 1
and eah.parent_id is not null
and exists (select 1 from public.ent_id_vs_o_add where house_id=eah.id)
and eah.adr_adm_ter is not null
7 мар 19, 06:45    [21826908]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить