您好,登錄后才能下訂單哦!
這篇文章主要介紹了數據庫中如何報告匯總數據使用組函數的方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
分組函數可以對行集進行操作,并且為每組給出一個結果。這些集合可以是整個表,也可以是由表分割成的組。
函數 | 內容 |
---|---|
AVG | 語法:AVG([DISTINCT|ALL]n) |
說明:n的平均值,忽略空值 | |
例句:
| |
COUNT | 語法:COUNT({*|[DISTINCT|ALL]expr}) |
說明:行數,其中expr用來判定非空值(使用*計算所有選定行,包括重復行和帶有空值的行) | |
例句:
| |
MAX | 語法:MAX([DISTINCT|ALL]expr) |
說明:expr的最大值,忽略空值 | |
例句:
| |
MIN | 語法:MIN([DISTINCT|ALL]expr) |
說明:expr的最小值,忽略空值 | |
例句:
| |
SUM | 語法:SUM([DISTINCT|ALL]n) |
說明:n的總計值,忽略空值 | |
例句:
|
1、GROUP BY
可以使用GROUPBY子句將表中的數據分成若干組。
a) 在SELECT列表中所有未包含在組函數中的列都應該包含在GROUP BY子句中。
b) 包含在GROUP BY 子句中的列不必包含在SELECT列表中。
2、HAVING
不能使用WHERE子句來過濾組
可以使用HAVING子句來過濾組
3、例句
--GROUP BY
--各個部門的最高、最低、平均工資
SELECT DEPTNO, MAX(SAL), MIN(SAL), AVG(SAL)
FROM EMP
GROUP BY DEPTNO;
--HAVING
--哪些員工有3個以上的直接下屬,列出員工名字和直接下屬個數
SELECT M.ENAME, COUNT(*)
FROM EMP W, EMP M
WHERE W.MGR = M.EMPNO
GROUP BY M.ENAME
HAVING COUNT(*) > 3;
例句:
SELECT MAX(AVG(salary))
FROM employees
GROUP BY department_id;
感謝你能夠認真閱讀完這篇文章,希望小編分享的“數據庫中如何報告匯總數據使用組函數的方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。