为了账号安全,请及时绑定邮箱和手机立即绑定

在SQL结果中(在MySQL或Perl端)填充空日期的最直接方法是什么?

在SQL结果中(在MySQL或Perl端)填充空日期的最直接方法是什么?

一只斗牛犬 2019-06-25 15:25:18
在SQL结果中(在MySQL或Perl端)填充空日期的最直接方法是什么?我正在用如下的查询从MySQL表构建一个快速CSV:select DATE(date),count(date) from table group by DATE(date) order by date asc;并将它们转储到Perl中的一个文件中:while(my($date,$sum) = $sth->fetchrow) {     print CSV "$date,$sum\n"}然而,数据中存在日期差距:| 2008-08-05 |           4 | | 2008-08-07 |          23 |我想用零计数条目填充数据,以填写缺失的日子:| 2008-08-05 |           4 | | 2008-08-06 |           0 | | 2008-08-07 |          23 |我想出了一个非常尴尬(几乎可以肯定是错误的)的解决办法,每个月都有很多天,还有一些数学,但是在MySQL或Perl方面,必须有更直接的解决办法。我为什么这么笨,有什么天才的主意/耳光吗?最后,我使用了一个存储过程,该存储过程为所讨论的日期范围生成了一个临时表,原因如下:我知道每次我要找的日期范围不幸的是,所讨论的服务器不是我可以在atm上安装perl模块的服务器,它的状态已经破旧到没有任何远程日期:-y。Perl的日期/日期-迭代答案也很好,我希望我可以选择多个答案!
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

当我不得不处理这个问题时,为了填写缺少的日期,我实际上创建了一个引用表,其中包含了我感兴趣的所有日期,并加入了日期字段中的数据表。很粗糙,但很管用。

SELECT DATE(r.date),count(d.date) FROM dates AS r 
LEFT JOIN table AS d ON d.date = r.date 
GROUP BY DATE(r.date) ORDER BY r.date ASC;

至于输出,我只想用选择进入OUTFILE而不是手工生成CSV。让我们不用担心逃亡的特殊角色。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 594 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信