| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4597 人关注过本帖
标题:数据统计
只看楼主 加入收藏
wty200800720
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2013-3-4
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:11 
数据统计
请教下,没学过sql我想问下,我这有1万个考生,每个考生有个总成绩,要求以20分段,统计考生人数怎么统计啊?
搜索更多相关主题的帖子: 总成绩 统计 
2016-05-12 14:56
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:5 
没明白你意思,你的应该不难
2016-05-12 16:44
wty200800720
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2013-3-4
收藏
得分:0 
回复 2楼 mywisdom88
就是比如有1万个考生
总分为700
那么就是总分大于等于680小于等于700有多少人
            大于等于660小于等于680有多少人
            大于等于640小于等于660有多少人
以此类推20分一个分数段的人数。
        
2016-05-19 14:09
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
--create table #成绩(学号 varchar(10),姓名 varchar(10),数学 numeric(5,2),语文 numeric(5,2),英语 numeric(5,2),总分 numeric(5,2))
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00001','张三',90.50,100,88.5,700)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00002','张三',90.50,100,88.5,685)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00003','张三',90.50,100,88.5,680)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00004','张三',90.50,100,88.5,665)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00005','张三',90.50,100,88.5,660)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00006','张三',90.50,100,88.5,645)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00007','张三',90.50,100,88.5,650)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00007','张三',90.50,100,88.5,640)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00008','张三',90.50,100,88.5,625)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00009','张三',90.50,100,88.5,620)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00010','张三',90.50,100,88.5,605)
--insert into #成绩(学号,姓名,数学,语文,英语,总分) values('00011','张三',90.50,100,88.5,600)
select sum(case when 总分>=680 and  总分<=700 then 1 else 0 end)as [680分],
       sum(case when 总分>=660 and  总分<=680 then 1 else 0 end)as [660分],
       sum(case when 总分>=640 and  总分<=660 then 1 else 0 end)as [640分],
       sum(case when 总分>=620 and  总分<=640 then 1 else 0 end)as [620分],
       sum(case when 总分>=500 and  总分<=520 then 1 else 0 end)as [500分]

 from #成绩
当然,你成绩表,要是有班级,年级的,还可以用班级,年级来分类统计

[此贴子已经被作者于2016-5-19 16:21编辑过]

2016-05-19 16:19
wty200800720
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2013-3-4
收藏
得分:0 
回复 3楼 wty200800720
我的成绩表只有姓名和总分,
只需要统计个分数段人数就行,你这个太复杂我看不懂也不会用啊朋友
2016-05-19 19:29
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:5 
以下是引用wty200800720在2016-5-19 19:29:41的发言:

我的成绩表只有姓名和总分,
只需要统计个分数段人数就行,你这个太复杂我看不懂也不会用啊朋友

你将表结构附上,大家才好帮你写代码。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2016-05-19 19:50
wty200800720
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2013-3-4
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-05-19 20:10
wty200800720
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2013-3-4
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-05-19 20:11
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
--sql2000测试数据,#成绩,表名前面带#,是临时表的意思
create table #成绩(姓名 varchar(10),总分 numeric(5,2))
insert into #成绩(姓名,总分) values('张三01',700)
insert into #成绩(姓名,总分) values('张三02',690)
insert into #成绩(姓名,总分) values('张三03',680)
insert into #成绩(姓名,总分) values('张三04',670)
insert into #成绩(姓名,总分) values('张三05',660)
insert into #成绩(姓名,总分) values('张三06',650)
insert into #成绩(姓名,总分) values('张三07',640)
insert into #成绩(姓名,总分) values('张三08',630)
insert into #成绩(姓名,总分) values('张三09',620)
insert into #成绩(姓名,总分) values('张三10',600)
insert into #成绩(姓名,总分) values('张三11',590)
insert into #成绩(姓名,总分) values('张三12',580)
insert into #成绩(姓名,总分) values('张三13',570)
insert into #成绩(姓名,总分) values('张三14',560)
insert into #成绩(姓名,总分) values('张三15',550)
insert into #成绩(姓名,总分) values('张三16',540)
insert into #成绩(姓名,总分) values('张三17',530)
insert into #成绩(姓名,总分) values('张三18',520)
insert into #成绩(姓名,总分) values('张三19',510)
insert into #成绩(姓名,总分) values('张三20',500)
insert into #成绩(姓名,总分) values('张三21',490)
--以上都是测试数据,以下是查询
select sum(case when 总分>=680 and  总分<=700 then 1 else 0 end)as [680分],
       sum(case when 总分>=660 and  总分<=680 then 1 else 0 end)as [660分],
       sum(case when 总分>=640 and  总分<=660 then 1 else 0 end)as [640分],
       sum(case when 总分>=620 and  总分<=640 then 1 else 0 end)as [620分],
       sum(case when 总分>=600 and  总分<=620 then 1 else 0 end)as [600分],
       sum(case when 总分>=580 and  总分<=600 then 1 else 0 end)as [580分],
       sum(case when 总分>=560 and  总分<=580 then 1 else 0 end)as [560分],
       sum(case when 总分>=540 and  总分<=560 then 1 else 0 end)as [540分],
       sum(case when 总分>=520 and  总分<=540 then 1 else 0 end)as [520分],
       sum(case when 总分>=500 and  总分<=520 then 1 else 0 end)as [500分],
       sum(case when 总分>=480 and  总分<=500 then 1 else 0 end)as [480分]
 from #成绩
-- 一直 sum(case when 总分>=300 and  总分<=320 then 1 else 0 end)as [300分]到你20个分类

2016-05-20 20:46
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
回复 9楼 mywisdom88
**如果是你VPF环境测试
create cursor 成绩(姓名 C(10),总分 N(3,2))
insert into 成绩(姓名,总分) values('张三01',700)
insert into 成绩(姓名,总分) values('张三02',690)
insert into 成绩(姓名,总分) values('张三03',680)
insert into 成绩(姓名,总分) values('张三04',670)
insert into 成绩(姓名,总分) values('张三05',660)
insert into 成绩(姓名,总分) values('张三06',650)
insert into 成绩(姓名,总分) values('张三07',640)
insert into 成绩(姓名,总分) values('张三08',630)
insert into 成绩(姓名,总分) values('张三09',620)
insert into 成绩(姓名,总分) values('张三10',600)
insert into 成绩(姓名,总分) values('张三11',590)
insert into 成绩(姓名,总分) values('张三12',580)
insert into 成绩(姓名,总分) values('张三13',570)
insert into 成绩(姓名,总分) values('张三14',560)
insert into 成绩(姓名,总分) values('张三15',550)
insert into 成绩(姓名,总分) values('张三16',540)
insert into 成绩(姓名,总分) values('张三17',530)
insert into 成绩(姓名,总分) values('张三18',520)
insert into 成绩(姓名,总分) values('张三19',510)
insert into 成绩(姓名,总分) values('张三20',500)
insert into 成绩(姓名,总分) values('张三21',490)
**以上都是测试数据,以下是查询
select sum(IIF( 总分>=680 and  总分<=700,1,0))as [总分680],;
       sum(iif( 总分>=660 and  总分<=680,1,0))as [总分660],;
       sum(iif( 总分>=640 and  总分<=660,1,0))as [总分640],;
       sum(iif( 总分>=620 and  总分<=640,1,0))as [总分620],;
       sum(iif( 总分>=600 and  总分<=620,1,0))as [总分600],;
       sum(iif( 总分>=580 and  总分<=600,1,0))as [总分580],;
       sum(iif( 总分>=560 and  总分<=580,1,0))as [总分560],;
       sum(iif( 总分>=540 and  总分<=560,1,0))as [总分540],;
       sum(iif( 总分>=520 and  总分<=540,1,0))as [总分520],;
       sum(iif( 总分>=500 and  总分<=520,1,0))as [总分500],;
       sum(iif( 总分>=480 and  总分<=500,1,0))as [总分480] ;
 from 成绩
** 一直 sum(iif( 总分>=480 and  总分<=500,1,0))as [总分480] 到你20个分类
**你在SQL数据库上问,我们一般就用SQL数据库的语法写,但看到你表,才知道你在VFP上。

[此贴子已经被作者于2016-5-20 21:00编辑过]

2016-05-20 20:49
快速回复:数据统计
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044036 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved