在我们自己的跟踪系统中,我有一个用来获取博客统计信息的查询。
我使用union,选择两个以上的表,因为我们每天将数据聚合在一个表中,并将今天的数据保存在另一个表中。
我想看最后10个月的车展。这个查询可以做到这一点,但是在一个特定的月中没有通信量,结果中没有行。
以前,我在mysql中使用了一个日历表来与at进行连接,以避免这种情况,但我只是没有熟练地重写这个查询来连接那个日历表。
calendart表有一个名为"datefield“的字段,我将其格式化为YYY-MM。
这是我使用的当前查询。
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)发布于 2017-08-29 13:16:17
像这样吗?
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.datehttps://stackoverflow.com/questions/45940098
复制相似问题