查询按天聚合数据以生成图表 - 行未知

时间:2014-01-13 23:46:34

标签: mysql

我开始构建搜索引擎监视器。我将数据从google rest api中提取到一个mysql数据库,其中包含以下字段:date,search-keyword,domain,url,position。

现在我遇到了查询和输出图表数据的麻烦。结果上下波动,谷歌的新结果进入列表,第一天没有出现。但是对于图表,我必须至少为空白值分配第一天以输出图表。

我现在做的是:首先,我选择在此期间出现的每个域名。让我们说关键字searchengine我得到域wikipedia.org,ixquick.com,yahoo.com,searchenginewatch.com当我再次请求域名来查询按天分组的排名数组。导致......

问题:每天返回平均值的任何查询(mysql / nosql),以及没有行的地方是默认值,例如空白吗

结果应如下所示:

dates={01/01/2014,02,03,04,05,06,07,08,...,31}
wikipedie={1,1,1,1,1,1,1,1,...,1}
yahoo = {"","",7,5,3,3,3,...,3}

2 个答案:

答案 0 :(得分:2)

您可以创建一个日期表,选择您想要的日期范围,并将数据外部加入其中,为给定的期限/日期不存在的值填写0。

编辑: 更多细节。

1)创建一个表,每个日期都有一行+ - 10年(或任何适当的日期)。如果您愿意,可以将此列设为一列,或列出许多列(日期,月份,年份等)。如果您希望将来通过各种汇总进行汇总,第二种方法可以实现这种扩展。

2)外部将您的表连接到日期表并使用NVL语句将任何空均值强制为0。

3)利润!

答案 1 :(得分:0)

如果您的结果按日期分组,那么MySQL如何知道那个月的31天(例如)?

另一方面,你可以通过循环遍历数组以某种方式填充PHP中的漏洞,如果该值不存在则填充零。