いくつかのデータを要約するクエリを書いています。私は基本的にブール値であるフラグをテーブルに持っているので、その1つの値に基づいていくつかの合計とカウントが必要であり、他の値についても同じことが必要です。
select
location
,count(*)
,sum(duration)
from my.table
where type = 'X'
and location = @location
and date(some_tstamp) = @date
group by location
そして、type列の別の値についても同じです。このテーブルを2回結合した場合でも、グループ化して、各テーブルの集計のみを取得できるようにするにはどうすればよいですか。つまり*、count(*)ではなくcount(a。)です。
2つの別々のクエリを書く方が良いでしょうか?
編集
みんなありがとう、でもそれは私が言ったことではありません。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。*)が好きではなく、構文エラーです。