2014-01-15 54 views
2

如果可能,我們是否可以創建一個年齡範圍並顯示相同的數量?如何爲給定數據創建範圍

假設,範圍和25之間的22計:3,範圍26和30之間的數:5

下面是個人表爲此我試圖做到這一點:

Age: 26 to 27, comments " post graduate" 
Age: 28 to 30, comments "working and single" 
Age: 31 to 33, comments " middle level manager and married" 

Table name: persons 

personid lastname firstname age comments 
1   Cardinal Tom   22 
2   prabhu priya  33 
3   bhandari abhijeet 24 
4   Harry  Bob   25 
5   krishna anand  29 
6   hari  hara  31 
7   ram  hara  27 
8   kulkarni manoj  35 
9   joshi  santosh  28 
+0

你能告訴我們你到目前爲止得到了什麼嗎? –

+0

我想不出任何東西..因爲我是新來的SQL。但我相信這可以通過使用視圖來完成。 – user3069018

+0

你正在使用什麼RDBM? – Hawk

回答

3
SELECT COUNT(CASE WHEN AGE >= 26 AND AGE <= 27 THEN 1 ELSE NULL END) AS [total26To27] 
     , COUNT(CASE WHEN AGE >= 28 AND AGE <= 30 THEN 1 ELSE NULL END) AS [total28T30] 
     , COUNT(CASE WHEN AGE >= 31 AND AGE <= 33 THEN 1 ELSE NULL END) AS [total31T33] 
FROM Persons 
+0

謝謝阿里,但是這個答案我提出的最後一個問題。但有小的修改,而不是「更新表人員」,正確的是「更新人員......」在運行最後更新時......它給出了一個錯誤「Msg 8152,Level 16,State 14,Line 1 字符串或二進制數據將被截斷。 該語句已被終止。「 – user3069018

+0

它的工作原理......但爲什麼你使用THEN 1 ??,而不是我們可以嘗試1或任何其他數字?當我試圖理解邏輯時,我已經從1變爲0,然後是100,然後是1000,但答案保持不變。 – user3069018

+1

我實際上並沒有在表格中計算年齡,我在計數函數中使用了一個CASE語句,並且當人的年齡[年齡範圍]其他數值不計數時,告訴count函數只計數1。等等...... –