我正在写一个查询来总结一些数据。我在表中有一个基本上是布尔值的标志,所以我需要一些基于它的一个值的总和和计数,然后对另一个值进行同样的操作,如下所示:
select
location
,count(*)
,sum(duration)
from my.table
where type = 'X'
and location = @location
and date(some_tstamp) = @date
group by location
然后对于 type 列的另一个值也是如此。如果我加入这个表两次,我如何仍然分组所以我只能得到每个表的聚合,即 count(a. *
) 而不是 count(*)...
编写两个单独的查询会更好吗?
编辑
谢谢大家,但我不是这个意思。我需要分别获取 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. *
),这是一个语法错误。