2015-09-12 62 views
-1

我需要將一些數據在圖表中顯示,但......實在是太難了,我:-(TSQL計數外觀集團通過值其它表

在一個表中我有客戶信息,這當中,名稱,公斤,年營業額

CustomerA    8  415.86 
CustomerB   145846  6815.80 
.............. 
CustomerZC   25160  25690.30 

,我需要計數已經買了不到50公斤,有多少從51到100買的客戶,從100到1.000,從1000 30.000等 但由於組限制不相似,每個範圍的邊界都存儲在另一個表中,並且看起來像

Group0  0-50 
Group1  51-100 
Group2 101-1000 
..... 
Group15 1000001-5000000 
Group16 5000001-9999999999 

,但我可以改變它,如果它可以幫助

我的目標是有結果是這樣的:

0-50   14217 
51-100   6425 
101-1000  841 
.... 
1000001-5000000 43 

現在我實現這個結果使得15個不同的查詢,但我想提出一個全球性的算法,可以適應羣體數量可變的

感謝

+2

我投票作爲題外話,因爲它有一百萬個重複 – Ben

+0

可以建議重複關閉這個問題..因爲我沒有去過找到任何.. 也許我用錯關鍵字 謝謝! – Joe

回答

1

This one是相似的,看看一t加入量程表的第二個選項。

在你的情況下,它會是這個樣子:

select r.boundary_name, coalesce(count(*), 0) as cnt 
from  ranges r 
left join customers c 
on  c.kgs between r.low_range and r.high_range 
group by r.boundary_name; 

當然你需要調整,如果你正在尋找獨特的範圍與包容性的加入,以及範圍表將需要低限和高限列。

+0

嗨,完美的作品,比我想象的要簡單得多。我會試着從中學到一些東西。 關於類似的問題..其實我沒有找到它,但沒有使用表的範圍,似乎更復雜.. 無論如何,非常感謝! – Joe