【发布时间】:2016-03-12 01:03:40
【问题描述】:
如果我需要大约 100 个 bin,如何在 SQL Server 2008 中进行 binning?我需要根据分箱变量是否属于 100 个相等间隔之一来对记录进行分组。 例如,如果有连续的变量年龄,我可以写:
CASE
WHEN AGE >= 0 AND AGE < 1 THEN '1'
WHEN AGE >= 1 AND AGE < 2 THEN '2'
...
WHEN AGE >= 99 AND AGE < 100 THEN '100'
END [age_group]
但是这个过程会很耗时吗?还有其他方法可以做到这一点吗?
【问题讨论】:
-
好吧-从您的示例中,您似乎实际上并不需要 CASE,因为 0 岁返回 1 并且 1 岁返回 2 等等....?所以看起来age_group 只是Age + 1?
-
@AllanS.Hansen,这取决于
AGE的数据类型(尽管int以外的任何数据类型都会很奇怪) -
@HoneyBadger 确实,使用不同的数据类型似乎可以进行演员表。
-
案例表达,不是案例陈述。 (case 表达式返回一个值。)
-
嗯,您可以随时将其与包含您的价格段的表格结合使用。您在关系数据库中,使用关联。
标签: sql sql-server sql-server-2008 tsql case