sqlserver 통계 sql 구문 모음 집

2847 단어 sqlserver통계 sql
1.모든 사람의 총 성적 을 계산 하고 select name,sum(score)as allscore from stuscore group by name order by allscore 2.모든 사람의 총 성적 을 계산 하고 select distinct t1.name,t1.stuid,t2.allscore from stuscore t1,(select stuid,sum(score)as allscore from stuscore group by stuid)t2where t1.stuid=t2.stuidorder by t2.allscore desc 3.각 과목 의 최고 성적 select t1.stuid,t1.name,t1.subject,t1.score from stuscore t1,(select stuid,max(score)as maxscore from stuscore group by stuid)t2where t1.stuid=t2.stuid and t1.score=t2.maxscore 4.모든 사람의 평균 성적 select distinct t1.stuid,t1.name,t2.avgscore from stuscore t1,(select stuid,avg(score)as avgscore from stuscore group by stuid)t2where t1.stuid=t2.stuid 5.각 과목 의 성적 이 가장 좋 은 학생 select t1.stuid 를 보 여 줍 니 다.t1.name,t1.subject,t2.maxscore from stuscore t1,(select subject,max(score)as maxscore from stuscore group by subject)t2where t1.subject=t2.subject and t1.score=t2.maxscore 6.각 과목 에서 성적 이 가장 좋 은 두 학생 select distinct t1.*from stuscore t1.id in(select top 2 stuscore.id from stuscore where subject=t1.subject order by score desc)order by t1.subject 7.영어 총 점 평균 점 수 는 stuid 를 학 번 으로,이름 은 이름 으로,sum(case when subject='국어'then score else 0 end)을 국어 로,sum(case when subject='수학'then score else 0 end)을 수학 으로,sum(case when subject='영어'then score else 0 end)을 영어 로,sum(score)을 총 점 으로,(sum(score)/count(*)를 stuscore group 의 평균 점수 로 stuid 로,name order by 총 점 desc 8.각 과목 의 평균 성적 select subject,avg(score)as avgs core from stuscore group by subject 9.수학 성적 의 순 위 를 보 여 주 는 declare@tmp table(pm int,name varchar(50),score int,stuid int)insert into@tmp select null,name,score,stuid from stuscore where subject='수학'order by score descdeclare@id intset@id=0;update @tmp set @id=@id+1,pm=@idselect * from @tmp select DENSE_RANK()OVER(order by score desc)as row,name,subject,score,stuid from stuscore where subject='수학'order by score desc 10.수학 성적 이 2-3 명인 학생 select t3.*from(select top 2 t2.*from(select top 3 name,subject,score,stuid from stuscore where subject='수학'order by score desc)t2 order by t2.score)t3 order by t3.score desc 11.이사 의 수학 성적 순위 declare@tmp table(pm int,name varchar(50),score int,stuid int)insert into@tmp select null,name,score,stuid from stuscore where subject='수학'order by score descdeclare@id intset@id=0;update@tmp set@id=@id+1,pm=@idselect*from@tmp where name='이사'12.과정 불합격(-59)양(-80)우(-100)선택 과목,(select count(*)from stuscore where score<60 and subject=t1.subject)as 불합격,(select count(*)from stuscore where score between 60 and 80 and subject=t1.subject)as 양,(select count(*)from stuscore where score>80 and subject=t1.subject)as 우성 from stuscore t1 group by subject 13.수학:장삼(50 점),이사(90 점),왕 오(90 점),조 육(76 점)declare@s varchar(1000)set@s='select@s=@s+','+name+'('+convert(varchar(10),score)+')'')print'수학:'+@s

좋은 웹페이지 즐겨찾기