[TOC]函數
經常使用函數--數學函數
函數名 | 做用 | 示例 |
---|---|---|
ABS(x) | 返回x的絕對值 | Select abs(2); 結果2 |
FLOOR(x) | 返回小於x的最大整數值 | Select floor(1.23); 結果1 Select floor(-1.23); 結果-2 |
GEILING(x) | 返回大於x的最小整數值 | Select ceiling(1.23);結果2 |
MOD(x,y) | 返回x/y的模(餘數) | Select mod(234,10];結果4 |
TRUNCATE(x,y) | 返回數字x截短爲y位小數的結果 | Select truncate(1.223,1);結果: 1.2 |
ROUND(x,y) | 返回參數x的四捨五入的有y位小數的值 | Select round(1.298,1);結果1.3 |
經常使用函數--字符串函數
常⽤函數--⽇期時間函數
常⽤函數--系統函數
聚合函數
SQL中提供的聚合函數能夠用來統計、求和、求最值等等。 spa
聚合函數應⽤
執⾏列、⾏計數(count)code
SELECT COUNT(*) FROM 表名
計算表中有多少⾏數據對象
SELECT COUNT(*) FROM users;
計算表中⼥⽣數目blog
SELECT COUNT(*) FROM users WHERE sex='⼥';
計算表中有⼯資的成員數字符串
SELECT COUNT(salary) FROM users;
計算表中的⼯做數量數學
SELECT COUNT(DISTINCT job) FROM users;
計算男性用戶表中⼯資合計table
SELECT SUM(*) FROM users WHERE sex='男';
計算表中用戶的平均年齡class
SELECT AVG(age) FROM users;
計算表中用戶的最⾼⼯資和最低⼯資im
SELECT MAX(salary) FROM users; --最⾼ SELECT MIN(salary) FROM users; --最低
分組查詢group by
- 在實際SQL應用中,常常須要進⾏分組聚合,即將查詢對象按⼀定條件分組,而後對每⼀個組進⾏聚合分析。
- 建立分組是經過GROUP BY⼦句實現的。GROUP BY⼦句用於概括信息類型,以彙總相關數據。
- GROUP BY的做用是經過⼀定的規則將⼀個數據集劃分紅若⼲個小的區域,而後針對若⼲個小區域進⾏數據處理。
SQL中數據能夠按列名分組,搭配聚合函數⼗分實用。
SELECT 分組項1[,分組項2],分組表達式 FROM 表 WHERE 篩選條件 GROUP BY 分組項1[,分組項2] HAVING 過濾分組
分組表達式
統計每一個性別的平均年齡
SELECT sex,AVG(age) AS 平均年齡 FROM users GROUP BY sex
分組中也能夠加⼊篩選條件WHERE
統計每一個班上20歲以上的學⽣⼈數
SELECT sex,COUNT(cname) FROM users WHERE age>20 GROUP BY sex;
執⾏順序爲:WHERE過濾→分組→聚合函數。
查詢每一個省份的⼈數和最小年齡
SELECT province, COUNT(cname), MIN(age) FROM users GROUP BY province
查詢每一個省份的男性和⼥⽣的⼈數
SELECT province,sex, COUNT(cname) FROM users GROUP BY province,sex
Having關鍵字
咱們但願在聚合以後執⾏過濾條件怎麼辦? 示例:查詢每⼀個省份男⼥⽣的⼈數,同時只須要顯示⼈數數量超過3⼈的記錄
SELECT province, sex, COUNT(cname) FROM users GROUP BY province, sex HAVING COUNT(cname)>3;