我正在尝试在 sql 中进行查询以将特定数据分组。所以我想在下一组中对数据进行分类:
[1-90m²] group1
[91-140m²] group2
[141-190m²] group3
[191-300m²] group4
[300+m²] group5
但我只有确切的数据Example 87m² -->[1-90m²] 160m² --> [141-190m²]
...
有谁知道如何做到这一点?谢谢!
我正在尝试在 sql 中进行查询以将特定数据分组。所以我想在下一组中对数据进行分类:
[1-90m²] group1
[91-140m²] group2
[141-190m²] group3
[191-300m²] group4
[300+m²] group5
但我只有确切的数据Example 87m² -->[1-90m²] 160m² --> [141-190m²]
...
有谁知道如何做到这一点?谢谢!
这通常称为离散化。
我将假设这些值存储在一个没有单位文本的整数字段中;如果这个假设是错误的或者数据类型不是整数,你可以改变这个:
DECLARE @test TABLE
(
id int IDENTITY,
value int
)
INSERT INTO @test (value) VALUES
(1),
(2),
(3),
(95),
(140),
(141),
(193),
(240),
(300),
(301)
SELECT value,
CASE
WHEN value <= 90 THEN 1
WHEN value <= 140 THEN 2
WHEN value <= 190 THEN 3
WHEN value <= 300 THEN 4
ELSE 5
END AS group
FROM @test
假设表YourTable
有一列woonoppervlakte
包含如下数据87
:
select case
when woonoppervlakte between 1 and 90 then 'group1'
when woonoppervlakte between 91 and 140 then 'group2'
when woonoppervlakte between 141 and 190 then 'group3'
when woonoppervlakte between 191 and 300 then 'group4'
when woonoppervlakte > 300 then 'group5'
end as [Group]
, *
from YourTable