怀念一起疯狂用代码查询数据的那时候

一开始接触到这个的时候,我们感觉有些繁琐,无聊,其实不是的。

那么现在就让你见证的时刻到了。

典例1:

查询每个年级的总学时数,并按照升序排列

select GradeId,SUM(ClassHour) as 总学时数
from Subject
group by GradeId
order by sum(ClassHour)

典例2:

查询每个学生参加所有考试的总分,并按照降序排列

select studentno,SUM(studentresult) as 总分
from Result
group by StudentNo
order by 总分 desc

典例3:

查询每年级学时数超过50 的课程数 
select gradeid,COUNT(subjectid) as 课程数
from Subject
where ClassHour>50
group by GradeId

典例4:

查询参加考试的学生中,平均分及格的学生记录(学号,平均分),按照降序排列
select studentno,AVG(StudentResult) as 平均分
from Result
group by StudentNo
having AVG(StudentResult)>=60
order by 平均分 desc

典例5:

查询考试时间为2013-3-22课程的及格平均分
select subjectid,AVG(studentresult) as 平均分
from Result
where ExamDate>='2013-3-22' and ExamDate<'2013-3-28'
group by SubjectId
having AVG(StudentResult)>=60

典例6:

统计至少有一次不及格的学生学号和次数。
select studentno,COUNT(1) as 次数
from Result
where StudentResult<60
group by StudentNo

典例7:

查询参加考试的学生中,平均分及格的学生记录(学号,平均分),按照降序排列
select studentno,AVG(StudentResult) as 平均分
from Result
group by StudentNo
having AVG(StudentResult)>=60
order by 平均分 desc

典例8:

查询每个年级包含北京的学生总数 like '%北京%'
select gradeid,COUNT(1) as 总人数
from student
where address like '%北京%'
group by Gradeid

典例9:

查询每年级学生的平均年龄:
select gradeid,AVG(DATEDIFF(yy,birthday,GETDATE())) as 平均年龄
from student
group by gradeid

典例10:

每个年级 男女生总人数(gradeid,gender,人数)
select gradeid,gender,COUNT(1)
from student
group by GradeId,Gender
order by GradeId,Gender

典例11:

查询每门课程的平均分,并按照降序排列
select subjectid,AVG(studentresult)as 平均分
from Result
group by SubjectId
order by 平均分 desc

       其实看这些,是有些麻烦,但是一点都不麻烦,只要我们掌握这个法宝,什么都难不倒,

对于这些来说,并不是我们要强记,而是要有发现规律的眼睛,有善于思考的大脑,有双勤劳的手,就可以啦

好好看吧 。

原文地址:https://www.cnblogs.com/weiguangyi/p/4936799.html