统计函数和子查询

一、组函数

    组函数也叫:统计函数/多行函数/聚合函数

    max(列名):求最大值

    min(列名):求最小值

    sum(列名):求和

    avg(列名):求平均值

    count(*):计算总数

    count(expr):返回在列中有expr指定的非控制的总数

    count(distinct expr):去重,在expr指定的列

        其中需要注意的:avg和sum函数参数类型只能是数字count/max/min参数类型可以是日期,字符和数字组函数会默认忽略控制,可以在组函数中使用nvl来处理空值

    单行函数对查询到每个结果集做处理,而组函数只对分组 数据做处理

    单行函数对每个结果集返回一个结果,而组函数对每个分组返回一个结果

组函数

查询分组:用group by 列名1,列名2...。

    需要注意:如果在select语句中包含了组函数,就不能选择单独的列出现在group by 子句中,因为他不知道要跟谁做比较,如果查询语句中出现了组函数和其他列,要查询的列必须出现在group by 语句中(组函数除外)

如果在查询分组中加条件需要用having 关键字

所以完整的查询语句:selcet 列名... from 表名 where 子语句 group by 列名 having 条件 roder by 排序列

分组

约束分组结果:having关键字

如果在查询分组中加条件筛选结果需要用having 关键字

所以完整的查询语句:selcet 列名... from 表名 where 子语句 group by 列名 having 条件 roder by 排序列

having

二、子查询

        子查询也是一个select语句,他是嵌套在另一个select语句中的子句(把一个查询语句的结果当作条件查询)

语法

需要注意:

    1.子查询语句必须用括号括起来(区分优先级)且在主查询之前执行一次

    2.若需要放在比较中,子查询放在比较条件的右边

    3.子查询的结果被用于主查询

子查询的分类:

    1.单行子查询:子查询语句只返回一行的查询(使用单行比较符)

单行子查询可以使用的运算符:

单行子查询
子查询

在子查询中显示多行数据需要注意的:

错误写法

    2.多行子查询:子查询语句返回多行的查询(使用多行比较符)

    多行子查询使用的比较符号:(能用多行的都可以用连接实现,而且效率更高)

多行子查询符号
any
all

any和all的区别以及用法:

all:代表所有

区别

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容