2013-10-10 72 views
0

我有這樣的表如何基於表創建範圍表值

表A

 
ID Value 
1  125 
2 400 
3 99 
4 130 
5 300 
6 350 
7 399 
.. 
.. 

欲下面表作爲輸出,其中範圍斷設定(100)是預先定義的。範圍值100 = 0-100之間TableA的價值,200的意思101-200

ResultTable

 
Range Count 
100 1 
200 2 
300 1 
400 3 
..  
.. 

什麼是做任何的想法建議的最佳方式。

+0

你的第二個表中有300計數1,但表A有300和350.不應該數2?還是我誤解你在問什麼? – Joe

+0

300表示201到300之間的值,所以它只包含300,350將在301到400範圍內。 – user781700

回答

1

取決於RDMS您使用,語法會有點不同(例如是Oracle),但總的想法是

CREATE TABLE new_table AS 
SELECT CAST(value/100 as INT)*100 as range, count(*) as cnt 
GROUP BY CAST(value/100 as INT)*100 
FROM old_table; 
+1

a1ex07快一分鐘。這是它的SQL服務器版本。 http://sqlfiddle.com/#!3/4cfbd/11 –

+0

在這兩種解決方案中,如果沒有任何值存在於任何範圍內,那麼不會有該範圍內的任何條目,但我想要0代替。 – user781700

+0

然後您需要創建一個新的(臨時)表格或內嵌視圖,其中包含您感興趣的所有範圍...... – a1ex07