博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见聚合函数
阅读量:4257 次
发布时间:2019-05-26

本文共 1952 字,大约阅读时间需要 6 分钟。

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

 

CREATE TABLE t_student(id INT PRIMARY KEY AUTO_INCREMENT,studentName VARCHAR(20),grade INT )DEFAULT CHARSET=utf8;INSERT INTO t_student(studentName,grade)VALUES ('张三',90);INSERT INTO t_student(studentName,grade)VALUES ('李四',70);INSERT INTO t_student(studentName,grade)VALUES ('王麻',70);INSERT INTO t_student(studentName,grade)VALUES ('赵二',75);INSERT INTO t_student(studentName,grade)VALUES ('柳五',86);INSERT INTO t_student(studentName,grade)VALUES ('陶渊明',45);INSERT INTO t_student(studentName,grade)VALUES ('何元庆',60);INSERT INTO t_student(studentName,grade)VALUES ('何元',60);INSERT INTO t_student(studentName,grade)VALUES ('何df',100);ALTER TABLE t_student ADD className VARCHAR(20);UPDATE t_student SET className='GT01' WHERE id>5;UPDATE t_student SET className='GT02' WHERE id<=5SELECT * FROM t_student-- 统计所有学生的总分SELECT SUM(grade) total FROM t_student;-- 统计学生总数SELECT COUNT(*) FROM t_student;-- 统计参考人数,如果指定列位null,不参与统计SELECT COUNT(grade) FROM t_student;-- 去掉指定列重复的记录SELECT  COUNT(DISTINCT grade) FROM t_student;-- 统计参考人数(去除null列)平均分SELECT AVG(grade) FROM t_student;-- 统计所有学生平均分,没参加考试的学生为0分SELECT SUM(grade)/COUNT(*) FROM t_student;-- 统计最高分和最低分SELECT  MAX(grade),MIN(grade) FROM t_student; -- where 后面不能跟聚合函数SELECT studentName,grade FROM t_student WHERE grade =(SELECT MAX(grade) FROM t_student)-- 将className相同的记录分成一组,然后再进行统计SELECT className,COUNT(*) FROM t_student GROUP BY className-- 统计所有班级及格的人数SELECT className,COUNT(grade) FROM t_student WHERE grade>=60 GROUP BY className-- 在有分组的SQL中,投影的列就会有限制。要求select 中的列必须满足以下两个条件之一,否则就是无效的投影。-- 1、使用了聚合函数的列  2、该列在GROUP BY字句中-- HAVING 和WHERE区别:二者都是过滤条件,WHERE运行在分组前,因此不能执行任何聚合函数。HAVING 是运行在分组后,只能用做聚合函数的过滤。-- 统计班级平均分在70分以上的班级,HAVING 过滤分组之后的数据,只能加在group by后面SELECT className ,AVG(grade) FROM t_student GROUP BY className HAVING AVG(grade)>=70-- SQL 的执行顺序:-- 1、执行from-- 2、执行where条件过滤-- 3、group by 分组-- 4、执行select投影列-- 5、having条件过滤-- 6、执行order by排序

 

转载地址:http://jvtei.baihongyu.com/

你可能感兴趣的文章
泸州属南气矿----配置S2600磁盘阵列报错:There is no master controller.
查看>>
SQL 调优1
查看>>
OA报账规范(出差专用)
查看>>
生产库快速关闭数据库
查看>>
差异增量备份和累积增量备份的差别
查看>>
ASM 无法发现候选磁盘组----grid 11.2.0.3 asm 自检通不过 prvf-5184
查看>>
ASM 无法发现候选磁盘组----丢失的ASM磁盘组 ASM的磁盘组无法挂载
查看>>
Oracle 10g配置单向stream流复制,完整记录
查看>>
ORA-00845 MEMORY_TARGET not supported on this system
查看>>
ORA-00257: archiver error --11GR2 RAC 设置归档路径和开启flashback
查看>>
奕新集团项目--Oracle 源RAC ---目标 RAC GG 搭建 11.2.3 版本 双向同步
查看>>
What is SCAN in Oracle 11g R2 RAC
查看>>
关于Recycle Bin是什么以及实验
查看>>
Linux搭建时间同步服务器
查看>>
ORA-12541: TNS:no listener
查看>>
mysql数据库存储路径更改 数据文件位置
查看>>
Could not fetch specs from https://rubygems.org/
查看>>
oracle日志分析工具LogMiner使用
查看>>
数据仓库中捕获变化数据(CDC,Changed Data Capture)的四种手
查看>>
使用 PDI 和 Oracle CDC 来实现Oracle 数据库向其他数据库的数据同步
查看>>