怎样用数据库sql server对数值型数据进行分组?

1、什么是数值分组?

这里说的数值分组是指对数值型字段,按照一定的依据重新分组生成新字段。

解释数值分组的概念

如图,表1是原始数据,在表1中添加一个辅助列“分组”就形成了表2.字段“分组”是根据字段“成绩”决定的。学生成绩在0-59区间为“不及格”,在60-75区间为“及格”……分组的依据见表3.把表1变成表2就是数值分组。

2、怎样用sql server实现数值分组?

这是导入数据库的成绩表,见下图:

成绩表

方法1:

修改法,在成绩表新建一个字段“等级”,然后用update结合case修改。代码如下图:

--新建字段[等级]
ALTER TABLE [dbo].[成绩表]
ADD [等级] varchar(50) 

--修改法,修改字段[等级]
update [dbo].[成绩表]
set [等级]=case
when [成绩]<60 then '不及格'
when [成绩]<75 then '及格'
when [成绩]<90 then '良好'
else '优秀' end

 

方法2:

新建视图法,新建一个视图,结合case达到效果,新建视图的好处是不破坏源数据表。代码如下图:

create view 数值分组
as
--select 查询语句
select [学生],[成绩],
--新建字段[等级],用case对数值字段进行分组
[等级]=case
when [成绩]<60 then '不及格'
when [成绩]<75 then '及格'
when [成绩]<90 then '良好'
else '优秀' end
from [dbo].[成绩表]

 

方法3:

这是导入数据库的分组表,见下图,在方法3中需要使用这个辅助表,用join on去匹配此表。

分组表

join法,新建一个视图,然后用join on去匹配[等级]字段,关键点是on的条件使用了“大于、小于”。

create view 数值分组2
as
--select 查询语句
select [学生],[成绩],[等级]
--使用join on的大于、小于条件来生成[等级]
from [dbo].[成绩表] left join [dbo].[分组表] on ([成绩]>=[开始值] and [成绩]<[结束值])

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值