首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写sql查询以填充空的月份行

重写sql查询以填充空的月份行
EN

Stack Overflow用户
提问于 2017-08-29 13:11:48
回答 1查看 37关注 0票数 1

在我们自己的跟踪系统中,我有一个用来获取博客统计信息的查询。

我使用union,选择两个以上的表,因为我们每天将数据聚合在一个表中,并将今天的数据保存在另一个表中。

我想看最后10个月的车展。这个查询可以做到这一点,但是在一个特定的月中没有通信量,结果中没有行。

以前,我在mysql中使用了一个日历表来与at进行连接,以避免这种情况,但我只是没有熟练地重写这个查询来连接那个日历表。

calendart表有一个名为"datefield“的字段,我将其格式化为YYY-MM。

这是我使用的当前查询。

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 13:16:17

像这样吗?

代码语言:javascript
复制
 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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45940098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档