MySQL函數應用

[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;
相關文章
相關標籤/搜索