惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
V
V2EX
Jina AI
Jina AI
爱范儿
爱范儿
M
MIT News - Artificial intelligence
量子位
L
LangChain Blog
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
腾讯CDC
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss

博客园 - 无名

sql2005分页SQL 数据库设计原则 sql2005排名函数 如何提高数据库性能,减少数据库服务器压力瓶颈一两个小方法 sql Server 索引优化 Using DeepLoad In NetTiers 看nettiers整理出来的codesmith模板编写要点 - 无名 - 博客园 .Net WinForm学习笔记 在javascript中,怎样响应键盘事件(转 - 无名 - 博客园 排名问题 DataGrid - 导出Excel文件 DataGrid导出excel和word的例子 DataGrid - 导出Excel文件 利用剪切板将DataSet的数据导出到Excel DataGrid相关知识总结(收集自各位老大处) 使用DES加密解密代码(C# & vb.Net),好东东,拷得,贴一下 dataGrid的手写样式 在DNN中获取所有模块信息 几个DNN里的技巧(转)(真的是好东东啊)
各分数段人数统计
无名 · 2006-06-23 · via 博客园 - 无名

已经存在一视图A,其显示如下:     
Exam       Name     Grade      Class        Subject     Score       总分级名次 
001          A           2002      -(1)       数学                    80                    1 
001       A           2002         一(1)          语文                 90                    1 
005          E           2002      -(1)       数学                    100                  1 
005       E           2002      一(1)          语文                 70                    1 
002       B           2002      一(1)       数学                    70                    3 
002       B           2002      一(1)       语文                    80                    3 
003       C           2002      一(2)       语文                    73                    2 
003       C           2002      一(2)       数学                    90                    2 
004       D           1999      四(1)       英语                    68                    1 
 
 
  
要求得到如下结果:     
Class                          参考人数                          1至2                        2以后 
一(1)                     3                              2                                1 
一(2)                     1                              1                            Null 
全级                                4                                3                            1 
 
提示: 
若全级的参考人数为7,则会得到以下六列: 
Class  参考人数  1至2  3至4   5至6   6以后 
(即步距为2。) 
 
       高手们,这一个统计结果是否可用存储过程或视图等实现?但我真的不想在程序中做,有办法吗? 
       谢谢!! 
 
 
create  table  依伊尘埃  (Exam  varchar(10),Name  varchar(10),Grade  int,Class  varchar(10),Subject  varchar(10),Score  int,总分级名次  int) 
insert  依伊尘埃  values('001','A',2002,'一(1)','数学',80,1) 
insert  依伊尘埃  values('001','A',2002,'一(1)','语文',90,1) 
insert  依伊尘埃  values('005','E',2002,'一(1)','数学',100,1) 
insert  依伊尘埃  values('005','E',2002,'一(1)','语文',70,1) 
insert  依伊尘埃  values('002','B',2002,'一(1)','数学',70,3) 
insert  依伊尘埃  values('002','B',2002,'一(1)','语文',80,3) 
insert  依伊尘埃  values('003','C',2002,'一(2)','语文',73,2) 
insert  依伊尘埃  values('003','C',2002,'一(2)','数学',90,2) 
insert  依伊尘埃  values('004','D',1999,'四(1)','英语',68,1) 
 
declare  @sql  varchar(8000),@sql1  varchar(1000),@sql2  varchar(1000) 
select  @sql  =  'select  Class,',@sql1='select  *,',@sql2='select  *  from  #大力  union  all  select  ''全级''' 
 
select  @sql1=@sql1+'isnull(['+cast(总分级名次  as  varchar)+'至'+cast(总分级名次+1  as  varchar)+'],0)+', 
@sql2=@sql2+',sum(['+cast(总分级名次  as  varchar)+'至'+cast(总分级名次+1  as  varchar)+'])', 
@sql=@sql+'sum(case  when  总分级名次  between  '+cast(总分级名次  as  varchar)+'  and  '+cast(总分级名次+1  as  varchar)+' 
                                                   then  1  else  null  end)  as  '''+cast(总分级名次  as  varchar)+'至'+cast(总分级名次+1  as  varchar)+''',' 
   from  (select  case  when  总分级名次%2=0  then  总分级名次-1  else  总分级名次  end  总分级名次    from  依伊尘埃  group  by  case  when  总分级名次%2=0  then  总分级名次-1  else  总分级名次  end)  as  a 
 
select  @sql1=left(@sql1,len(@sql1)-1)+'  参考人数  into  #大力  from(', 
@sql=@sql1+left(@sql,len(@sql)-1)+'  from  (select    Class,Exam,总分级名次  from  依伊尘埃  a  where  Class  like  ''一%''    group  by  Class,Exam,总分级名次)  tem  where  Class  like  ''一%''  group  by  Class)  temp1;'+@sql2+',sum(参考人数)  from  #大力' 
 
exec(@sql) 
 
drop  table