2013-02-14 55 views
1

我試圖在sql中進行查詢以將特定數據放入組中。 所以我想在接下來的組數據進行分類:如何使用sql查詢對組中的特定數據進行分類

[1-90m²] group1 
[91-140m²] group2 
[141-190m²] group3 
[191-300m²] group4 
[300+m²] group5 

但我只是有確切的數據.. Example 87m² -->[1-90m²] 160m² --> [141-190m²]

有誰知道如何做到這一點? 謝謝!

+1

你使用的是什麼rdbms?您的數據是否實際與相同列中的數字和字母一起存儲? – Taryn 2013-02-14 15:02:11

+0

你的問題是什麼?如何分組數據或如何轉換87m²到[1-90m²]? – Art 2013-02-14 15:07:32

回答

1

通常被稱爲離散化。

我打算假設這些值存儲在一個沒有單位文本的整數字段中;如果這個假設是錯誤的或者數據類型不是整數,你可以改變這個:

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 
1

假定表YourTable具有數據的列woonoppervlakte87

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 
+0

謝謝,但在我的專欄裏只有87個,而不是87平方米。 具有m2值的列的名稱是「woonoppervlakte」,並且具有組的列的名稱是「group」 – warnerst 2013-02-14 15:33:54

相關問題