2015-09-07 60 views
0

我有一個企業及其創建日期列表,並且我想將它們分組爲年+周編號的分檔 - 但問題在於,如果在周內沒有創建企業1在2015年我仍然希望它用'0'顯示這個bin。SQL組數據到年+周編號

下面的查詢跳過幾個星期,有沒有企業創造的:

SELECT Date_Format(created,'%X %V') as d, count(*) as Biz 
FROM businesses b 
GROUP BY d 
ORDER BY d asc 

有誰知道我可以添加缺少的垃圾箱,並保持它的動態?這意味着當我在2周內運行它時,即使在這兩週內沒有創建商家,我也會得到2個新的垃圾箱。 謝謝!

+0

你需要的信息源來作爲你的那一週箱(如果你有一個日曆表,這將做,否則,你可以硬編碼的東西),然後離開從垃圾箱加入到您的數據 – amdixon

+0

...或只處理表示層中缺失結果的邏輯(如果可用) – Strawberry

回答

0

嘗試連接的查詢

select 
Date_Format(M1,'%X %V'),count(b.*) 
from 
(
select 
'2015-01-01' +INTERVAL m WEEK as m1 
from 
(
select @rownum:[email protected]+1 as m from 
(select 1 union select 2 union select 3 union select 4) t1, 
(select 1 union select 2 union select 3 union select 4) t2, 
(select 1 union select 2 union select 3 union select 4) t3, 
(select @rownum:=-1) t0 
) d1 
) d2 
LEFT JOIN businesses b on Date_Format(b.created,'%X %V')=Date_Format(M1,'%X %V') 
group by 
Date_Format(M1,'%X %V') 
order by m1