如何根据表值创建范围表

时间:2013-10-10 16:16:27

标签: sql-server tsql

我有这张桌子

TableA

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  
..    
..  

任何想法建议的最佳方法是什么。

1 个答案:

答案 0 :(得分: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;