MY SQL 按照每天分组查询,数据库没有数据也要显示,可以怎么操作

2018-12-10 17:12:40 +08:00
 CUMTProgrammer

要做一个图形展示,用 GROUP BY DATE_FORMAT(time,'%Y%m%d')话,time 是不连续的,数据就会 BUG,求教高手怎么整

1340 次点击
所在节点    程序员
6 条回复
id4alex
2018-12-10 17:16:53 +08:00
做个连续的时间维表, 然后 left join 一哈你们的表, 再操作
id4alex
2018-12-10 17:18:34 +08:00
然后 left join 一哈你们的表

意思是 left join 你们这个已经 group by 好的结果(date,xxxx)
CUMTProgrammer
2018-12-10 17:19:30 +08:00
@id4alex #1 那不是要新建一张表,而且 join 多加一张表,效率也会降低很多
keepeye
2018-12-10 17:20:05 +08:00
方法 1:结果取回来后自己代码循环一遍,没有日期的手动补齐。

方法 2:搞个结构一样的临时表,插入连续的日期,查询的时候 union all?
id4alex
2018-12-10 17:22:01 +08:00
@CUMTProgrammer 时间维度表, 不需要建,with as 临时表即可. 你在这里纠结的时间也算效率降低噢.
realpg
2018-12-11 17:15:27 +08:00
本身你这个查询效率就会低的离谱,不怕更低一些了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/516198

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX