2

私はPostgreSQLを使用していて、次のようなテーブルがあります。ここでSQLフィドルを参照してください:http ://sqlfiddle.com/#!1 / 253b4 / 1

CREATE TABLE usage_sample
(
  id serial primary key, 
  category text NOT NULL,
  name text NOT NULL,
  sample_time timestamp with time zone NOT NULL
);

1分あたりのサンプル数のカウントを返し、カテゴリと名前の組み合わせごとにこのカウントのセットを持つクエリを作成する必要があります。したがって、出力は次のようになります。

cat1, act1, minute1, count
cat1, act1, minute2, count
cat1, act2, minute1, count
cat1, act2, minute3, count
cat2, act1, minute2, count
...

group byを使用して毎分カウントを取得する方法と、カテゴリとアクションの各コンボのカウントを取得する方法を知っていますが、これらを組み合わせてグループ化とカウントをネストする方法がわかりません。

sql fiddle http://sqlfiddle.com/#!1/253b4/1は、サンプルのデータセットと私が始めようとしたクエリを示しています。誰かが私に必要な結果を得る方法についてアドバイスをくれますか?

4

1 に答える 1

4

これは、あなたの望むことですか?

select category, name, date_trunc('minute', sample_time) as minute, count(*) 
from usage_sample 
group by category, name, date_trunc('minute', sample_time)
order by category, name, minute
于 2013-03-21T14:09:45.820 に答える