你的位置:首页 > 软件开发 > 数据库 > [SQL入门级] 接上篇,继续查询

[SQL入门级] 接上篇,继续查询

发布时间:2015-07-08 18:00:04
距离上一篇时间隔得蛮久了,这篇继续查询,简单总结一下聚合函数、分组的知识。 一、聚合函数(组函数/多行函数) 何谓多行函数,顾名思义就是函数作用于多行数据得出一个输出结果,什么意思呢?看图: 那么常用的有哪些这样的函数呢? AVG(平均值) SUM(合计) COUNT(计 ...

距离上一篇时间隔得蛮久了,这篇继续查询,简单总结一下聚合函数、分组的知识。

一、聚合函数(组函数/多行函数)

何谓多行函数,顾名思义就是函数作用于多行数据得出一个输出结果,什么意思呢?看图:

[SQL入门级] 接上篇,继续查询

那么常用的有哪些这样的函数呢?

AVG(平均值)

SUM(合计)

COUNT(计数)

MAX(最大值)

MIN(最小值)

STDDEV(标准差)

组函数使用的语法,用法很简单,但有两点要注意:

[SQL入门级] 接上篇,继续查询

I. 函数参数类型

  1. 对数值型数据使用AVG和SUM函数
  2. 对任意数据类型的数据使用MIN、MAX、COUNT函数

II. 有关空值的处理

  1. 首先组函数是忽略空值的,例如COUNT(*)返回的是表中所有的记录数,而COUNT(expr)返回的是expr字段不为空的记录数
  2. 那么怎样来处理空值呢,就要用到上一篇中提到的NVL函数,SELECT AVG(NVL(commission_pct,0)) FROM employees
  3. DISTINCT关键字表达的非空且不重复,COUNT(DISTINCT expr)返回的expr非空且不重复的记录数

III. 不能在WHERE子句中使用组函数,这点结合后面的HAVING子句解释。

IV. 组函数可以嵌套使用

二、数据分组

GROUP BY子句,分组数据

意思咱就不废话了,用的时候注意两点:

  • SELECT后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY后面,反过来包含在GROUP BY子句的中的列却不必包含在SELECT列表中。
  • GROUP BY子句可以包含多个列,同意也适用规则1。

有点晕,什么意思呢?我来解释一下,判断一个sql语句是否合法其实可以试着去理解你要写的sql语句要表达的实际想法,例如:

  • select department_id,job_id,avg(salary)

     

    海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

    原标题:[SQL入门级] 接上篇,继续查询

    关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。