选择范围内的分组 [英] Select with grouping in range

查看:94
本文介绍了选择范围内的分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从表
AB
_____________ $
1 A
3 B
6 C
7 C
8 X
9 Y
15 Z
16 R
17 t
23 T
43 e



$ p $ 范围A计数B
_________________
1-10 6
11-20 3
21-30 1
31-40 1

这可以使用循环完成:

 从TableA中选择Count(*),其中b在@a和@b 
之间b

但是我想做它可能没有使用任何循环?

解决方案

试试这个:

< (((A / 10)* 10 + 1)as varchar(100))+' - '+ Cast(((A / 10)* 10)pre> + 10)as varchar(100))AS'Range A',
Count(*)as'Count B'
FROM TableA
GROUP BY A / 10


From Table
A   B
_______________
1   A
3   B
6   C
7   C
8   X   
9   Y
15  Z
16  R
17  t   
23  T
43  e

How to bring this result:

Range A  Count B
_________________
1-10    6
11-20   3
21-30   1
31-40   1

This could be done using loop:

Select Count (* ) from TableA where b between @a and @b

But I would like to do it without using any loop is it possible?

解决方案

Try this:

SELECT 
Cast(((A / 10) * 10 + 1) as varchar(100)) + '-' + Cast(((A / 10) * 10 + 10) as varchar(100)) AS 'Range A',
Count(*) as 'Count B'
 FROM TableA
GROUP BY A / 10

这篇关于选择范围内的分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆