postgres DB内の単一のテーブルを使用して、SQLで日付ごとに結果の行を取得しようとしています。私はユニオンを使ってみましたが、これは正しい方法ではないと思います。私は正しいSQLを構築するのに役立ちますか?postgres union結果の集約
表のコンテンツのためのサンプルデータ列:ID、のCreationDate、使用している場合
1 |2016-04-02|PAGE
2 |2016-04-02|ATTACHMENT
3 |2016-04-02|PAGE
4 |2016-04-03|ATTACHMENT
5 |2016-04-03|PAGE
6 |2016-04-03|ATTACHMENT
7 |2016-04-03|PAGE
8 |2016-04-04|ATTACHMENT
9 |2016-04-04|ATTACHMENT
10|2016-04-04|ATTACHMENT
をCONTENTTYPEこのSQLクエリ:
SELECT
date(creationdate) AS create_date,
COUNT(*) AS PAGE,0 AS ATTACHMENT
FROM
content
WHERE
contenttype='PAGE' GROUP BY content.creationdate
UNION
SELECT
date(creationdate) AS create_date,
0 AS PAGE,COUNT(*) AS ATTACHMENT
FROM
content
WHERE
contenttype='ATTACHMENT' GROUP BY content.creationdate
ORDER BY create_date ASC;
私は私が欲しい結果に
|create_date|PAGE|ATTACHMENT|
|2016-04-02|0|2|
|2016-04-02|1|0|
|2016-04-03|0|2|
|2016-04-03|1|0|
|2016-04-04|3|0|
を取得は:
|create_date|PAGE|ATTACHMENT|
|2016-04-02|1|2|
|2016-04-03|2|2|
|2016-04-04|3|0|
あなたは何を期待していますか? –
これらの重複を削除しますか? –
私が探しているのは、日付ごとのアグリゲーションの結果です。つまり、結果に2016-04-02という2つのエントリがあるのではなく、両方の結果で1つの結果が欲しいです。 –