mm111222 发表于 2018-9-21 10:12:15

Oracle_071_lesson_p6

分组函数Group functions
  avg求平均
  count 求数量
  max求值可针对数字,日期,字符
  min 求值可针对数字,日期,字符
  sum 求总和
  listagg
  stddev
  variance
  count详解:
  count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).
  distinct 列名,得到的结果将是除去值为null和重复数据后的结果
  select avg(salary),max(salary),min(salary),sum(salary)
  from employees
  where job_id like '%REP%';
  select count(*)
  from employees
  where department_id=50;
  select count(commission_pct)
  from employees
  where department_id=50;
  空值行不参与计算
  GROUP BY 分组
  select department_id,avg(salary)
  from employees
  group by department_id;
  select department_id,avg(salary)
  from employees
  group by department_id;
  order by avg(salary);
  此group by 后可跟order by ,但order by子句只能出现在最后。
  select avg(salary)
  from employees
  group by department_id;
  但group by 的列名不必一定在select 子句中
  SELECT   department_id, AVG(salary)
  FROM   employees
  GROUP BY department_id
  HAVING   AVG(salary) > 8000;
  where 子句不能加分组函数,要用having子句才能加分组函数
  alias 别名不能放在group by 子句中

页: [1]
查看完整版本: Oracle_071_lesson_p6