sql语句查询,并统计查询结果数量 30
id name age score
1 小明 23 98
2 小丽 21 99
3 小刚 23 80
现在想写一个sql语句,查询学生成绩大于90的学生信息,并且统计出人数
在sql中:select * from sd_student_t where score > 90
应该做怎样的修改,才能实现这个功能,如果可以在查询的结果中,每一条数据都加上一个字段表示查询结果数量就更好。提前说明:select *, count(*) from sd_student_t where score > 90 这样是不行的,这样只能查询出一条数据
现用的是mysql数据库 展开
可以通过count函数来实现。
sqlOne:select * from tablename1 where id>5;此语句查询出来多条记录,之后看做一个新的表。
sqlTwo:select conut(*) from (select * from tablename1 where id>5) as tablename2;此语句即可查询出来统计的记录条数。
备注:以上方法通用于所有的数据统计,如果是单表查询,可以直接通过:“select count( *) from tablename1 where id>5"的形式查询出结果。
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
如果你要看成绩大于90的学生的信息,就不能统计人数
select id,name,age,count(score)
from sd_student_t
where score > 90
group by id,name,age
这个也是统计并且查看详细信息,但是跟你要求的不一样,这个是按id,name,age来分组的,所以统计的知识同id,name,age里面成绩大于90的人数
这是统计大于90的人数,然后再输出信息就行了
如:
select name,age,score from sd_student_t where score > 90
union all
select '合计',null, count(1) from sd_student_t where score > 90