Oracle——分組函數


AVG(平均值)和 SUM (合計)函數

  • 可以對數值型數據使用AVG 和 SUM 函數。
  • AVG組函數忽略空值
--在組函數中使用NVL函數
--求平均值
sum(expr)/count(nvl(expr,0))

MIN(最小值)和 MAX(最大值)函數

  • 可以對任意數據類型的數據使用 MIN 和 MAX 函數。
SELECT MIN(hire_date), MAX(hire_date)
FROM employees;

COUNT(*) 返回表中記錄總數,適用於任意數據類型。

SELECT COUNT(*)
FROM    employees
WHERE department_id = 50;
  • COUNT(expr) 返回expr不為空的記錄總數。
  • COUNT(DISTINCT expr)返回expr非空且不重復的記錄總數
SELECT COUNT(DISTINCT department_id)
FROM employees;

Group by

可以使用GROUP BY子句將表中的數據分成若干組

、WHERE一定放在FROM后面

select department_id ,avg(salary)
from employees
--where department_id in(20,30,40)
group by department_id

②、在SELECT 列表中所有未包含在組函數中的列都應該包含在 GROUP BY 子句中。

SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id ;

③、包含在 GROUP BY 子句中的列不必包含在SELECT 列表中

SELECT AVG(salary)
FROM employees
GROUP BY department_id ;

  ④、使用多個列分組

select department_id ,job_id,avg(salary)
from employees
group by department_id,job_id

   ⑤、可以在 HAVING 子句中使用組函數

SELECT department_id, AVG(salary)
FROM employees
HAVING AVG(salary) > 8000
GROUP BY department_id;

注意:不能在 WHERE 子句中使用組函數。

  ⑥、可以在order by 子句中使用組函數

select department_id,avg(salary)
from employees
having avg(salary)>6000
group by department_id
order by avg(salary) 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM