2012-12-11 44 views
2

我有一個查詢,它返回在7天的間隔時間內在特定日期內註冊的用戶總數。我也想獲得零計數數據,所以我可以將其繪製在我的圖上。 如何獲取零計數值?在我的SQL查詢中需要一些修改

查詢:

select date(update_timestamp) as date, count(*) users 
from registered 
where date(update_timestamp) between date_sub(sysdate(), interval 7 day) and sysdate() 
group by date(update_timestamp) 

我這是對這個職位http://bit.ly/12irdyf。問題解決了早期我的查詢一些問題就解決了,不過,我需要在我的查詢修改,現在我需要顯示空值也是如此。

謝謝

+0

哪個數據庫引擎? –

+0

@DanielPPCabral MySQL –

回答

3

保留一個calender_table的最佳方法,該方法已獲得每年的每個日期的條目。

select date(update_timestamp) as date, count(*) users 
from  calender_table c 
left join registered r 
on  date(update_timestamp)=c.date 
where  c.date between date_sub(sysdate(), interval 7 day) and sysdate() 
group by c.date 
+0

即時通訊綁定我的圖表與數據源與你提到的這個查詢。它說db沒有calender_table表: - \ –

+1

@Vinayak:在你的數據庫中創建calender_table ..看到這個鏈接http://creative-territory.net/post/view/id/31/ –

+0

是的,我可以做到這一點,但我不允許添加新表或修改數據庫... :(你有任何其他解決方案嗎? –

0

你是什麼意思的零計數值?也許你需要:

select date(update_timestamp) as date, count(*) users, '0' AS zero 

也許你想獲取它是什麼日期,當你沒有用戶?

只需找到第一個用戶註冊之前的日期,並像上面那樣爲其指定一個零。

+0

例如我有2個用戶在12/11/2012註冊,3個用戶在12/10/10註冊。現在我的查詢將僅顯示這兩個計數值(在7天的時間間隔內)。我想用零顯示其餘的日期值作爲我現在明白的計數 –

+2

。喬有一個很好的答案。 –