【发布时间】:2011-07-14 01:31:55
【问题描述】:
Table:
new_table
user_number | diff
2 | 0
1 | 28
2 | 32
1 | 40
1 | 53
1 | 59
1 | 101
1 | 105
2 | 108
2 | 129
2 | 130
1 | 144
|(result)
v
range | number of users
0-20 | 2
21-41 | 3
42-62 | 1
63-83 | 2
84-104 | 1
105-135| 0
136-156| 3
select t.range as [range], count(*) as [number of users]
from (
select case
when diff between 0 and 20 then ' 0-20'
when diff between 21 and 41 then ' 21-41'
when diff between 42 and 62 then ' 42-62'
when diff between 63 and 83 then ' 63-83'
when diff between 84 and 104 then ' 84-104'
when diff between 105 and 135 then ' 105-135'
else '136-156'
end as range
from new_table) t
group by t.diff
Error:
You have an error in your SQL syntax, near '[range], count(*) as [number of users]
from (
select case
when' at line 1
【问题讨论】:
-
顺便说一句,您的中间部分需要根据范围进行更改。您目前每行都有相同的 0-20 范围定义。
-
对不起,你是对的,它应该符合范围
-
我能够得到这个工作,但改变“GROUP BY”查询哟:GROUP BY t.range
-
谢谢。我实际上需要您的查询,而不是下面更短的解决方案,所以我可以做不定期的间隔。