1

私はセールスリードのテーブルを持っています:

CREATE TABLE "lead" (
    "id" serial NOT NULL PRIMARY KEY,
    "marketer" varchar(500) NOT NULL,
    "date_set" varchar(500) NOT NULL
)
;
INSERT INTO lead VALUES (1, 'Joe', '05/01/13');
INSERT INTO lead VALUES (2, 'Joe', '05/02/13');
INSERT INTO lead VALUES (3, 'Joe', '05/03/13');
INSERT INTO lead VALUES (4, 'Sally', '05/03/13');
INSERT INTO lead VALUES (5, 'Sally', '05/03/13');
INSERT INTO lead VALUES (6, 'Andrew', '05/04/13');

各マーケターが毎日持っているレコード数を要約したレポートを作成したいと考えています。次のようになります。

| MARKETER | 05/01/13 | 05/02/13 | 05/03/13 | 05/04/13 |
--------------------------------------------------------
|      Joe |        1 |        1 |        1 |        0 |
|    Sally |        0 |        0 |        2 |        1 |
|   Andrew |        0 |        0 |        0 |        1 |

これを生成するための SQL クエリは何ですか?

この例を SQL Fiddle にセットアップしました: http://sqlfiddle.com/#!12/eb27a/1

4

2 に答える 2

1

次のように実行できます。

select
  marketer,
  count(case when date_set = '05/01/13' then 1 else null end) as "05/01/13",
  count(case when date_set = '05/02/13' then 1 else null end) as "05/02/13",
  count(case when date_set = '05/03/13' then 1 else null end) as "05/03/13",
  count(case when date_set = '05/04/13' then 1 else null end) as "05/04/13"
from lead
group by marketer
于 2013-05-16T23:40:29.707 に答える
1

純粋な SQL はそのような構造を生成できません (2 次元ですが、SQL はプレーンなレコードのリストを返します)。

次のようなクエリを作成できます。

select marketer, date_set, count(id) 
from lead
group by marketer, date_set;

そして、このデータをレポート システムで視覚化します。

于 2013-05-16T23:37:26.650 に答える