2017-08-29 6 views
1

私はこのクエリを使用して、私たち自身のトラッキングシステムでブログの統計を取得します。空の月の行を埋め込むためにsqlクエリを書き直す

私は毎日1つのテーブルにデータを集約し、別のテーブルに今日のデータを保持しているので、2つ以上のテーブルでユニオンセレクトを使用します。

私はトラフィックショーの最後の10ヶ月間を持ちたいと思っています。このクエリはこれを行いますが、特定の月にその行が結果に含まれていないトラフィックはありません。

これまでMySQLのカレンダーテーブルを使用していましたが、これを避けるために参加しましたが、単にこのクエリを書き換えてそのカレンダーテーブルに参加することは熟練していませんでした。

calendartテーブルは、私はこれは私がこのような

SELECT FORMAT(SUM(`count`),0) as `count`, DATE(`date`) as `date` 
FROM 
(
    SELECT count(distinct(uniq_id)) as `count`, `timestamp` as `date` 
    FROM tracking 
    WHERE `timestamp` > now() - INTERVAL 1 DAY AND target_bid = 92 
    group by `datestamp` 

    UNION ALL 

select sum(`count`),`datestamp` as `date` 
    from aggregate_visits 
    where `datestamp` > now() - interval 10 month 
    and target_bid = 92 
    group by `datestamp` 
) a 
GROUP BY MONTH(date) 

答えて

2

何かを使用する現在のクエリで

形式YYY-MM-DDの日 "日付フィールド" と呼ばれる1つのフィールドを持っていますか?

select sum(COALESCE(t.`count`,0)),s.date as `date` 
from DateTable s 
LEFT JOIN (SELECT * FROM aggregate_visits 
      where `datestamp` > now() - interval 10 month 
      and target_bid = 92) t 
    ON(s.date = t.datestamp) 
group by s.date 
+0

あなたの例から書き直された魅力のように機能します..ありがとう –

関連する問題