2014-01-13 22 views
0

我開始建立一個搜索引擎監視器。我將數據從谷歌休息api到以下字段的MySQL數據庫:日期,搜索關鍵字,域名,網址,位置。查詢到白天聚合數據生成圖表 - 行未知

現在我遇到了麻煩查詢和輸出圖表數據。結果是上升和下降,谷歌的新結果進入名單,第一天就沒有出現。然而,對於圖表,我必須指定第一天至少空白值來輸出圖表。

我現在要做的是:首先,我選擇在該期間出現的每個域。讓我們說關鍵字searchengine我得到域名wikipedia.org,ixquick.com,yahoo.com,searchenginewatch.com當我再次請求永久域名查詢按天分組的排名數組。導致...

問題:其中任何查詢(mysql/nosql)每天返回一個平均值,如果where行沒有默認值,例如空白?

結果應該是這樣的:

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} 
+0

請舉例說明您正在使用的數據。 –

回答

0

如果結果按日期分組,怎麼能知道的MySQL(例如)有31個天當月?

另一方面,您可以以某種方式通過循環遍歷數組填充PHP中的空洞,並在該值不存在時填充零。

2

您可以創建一個日期表,選擇您想要的日期範圍,然後將數據外部連接到它,對於給定的期限/日期不存在的值填充0。

編輯: 一些更多的細節。

1)創建一個表格,每個日期+ - 10年(或任何適當的)都有一行。如果你願意,你可以製作這一列,或許多列(日期,月份,年份等)。如果您想通過將來的各種彙總進行彙總,第二種方法會使其具有可擴展性。

2)外連接你的表的日期表,並使用NVL聲明強迫任何空平均值爲0

3)利潤!

+0

這是我一直喜歡採取的方法。你可能想用一個例子來闡述。 –

+0

是我的第一個想法@DNadel。然而,我想知道是否有一個原生的SQL語句,這比執行更好的連接? – Manuel

+0

只是一個想法?有沒有其他的數據庫如沙發,mongo或hadoop這樣的功能與map/reduce? – Manuel