Я пишу запрос, чтобы обобщить некоторые данные. У меня есть флаг в таблице, который в основном является логическим, поэтому мне нужны некоторые суммы и числа, основанные на одном его значении, и затем то же самое для другого значения, например:
select
location
,count(*)
,sum(duration)
from my.table
where type = 'X'
and location = @location
and date(some_tstamp) = @date
group by location
И то же самое для другого значения столбца типа. Если я присоединяюсь к этой таблице дважды, как мне все еще группировать, чтобы я мог получать агрегацию только для каждой таблицы, то есть count (a. *
) вместо count (*) ...
Было бы лучше написать два отдельных запроса?
EDIT
Спасибо всем, но я не это имел в виду. Мне нужно получить резюме, где type = 'X' и резюме, где type = 'Y' отдельно ... позвольте мне опубликовать лучший пример. Я имел в виду такой запрос:
select
a.location
,count(a.*)
,sum(a.duration)
,count(b.*)
,sum(b.duration)
from my.table a, my.table b
where a.type = 'X'
and a.location = @location
and date(a.some_tstamp) = @date
and b.location = @location
and date(b.some_tstamp) = @date
and b.type = 'Y'
group by a.location
Что мне нужно для группировки? Кроме того, DB2 не любит count (a. *
), это синтаксическая ошибка.