mysql中有没有单行函数_MySQL之函数(单行函数、分组函数)
##進階函數
/*
調用語法:select函數名(實參列表);
分組函數和單行函數的區別:
單行函數:將一個數據進行處理,返回一個值
分組函數:將虛擬表看做一個組,處理一組數據,返回一個值
常見的分組函數:
sum(字段):求該字段的所有值的和
avg(字段):求該字段的平均值
max(字段):求最大值
min(字段):求最小值
count(字段):計算該字段中的非空值的個數
特點:
1.分組函數可以搭配篩選條件使用
2.分組函數的參數可以作為字段或者表達式
3.分組函數都忽略null值
4.分組函數都支持的類型:
max、min、count支持任意類型
sum、avg僅僅支持數值類型
5.count的使用
count(*)或count(常量值):統計結果集中的行數
count(distinct字段):實現去重后的統計
6.和分組函數一同查詢的字段不能是任意字段,可以是group by后面的字段
問題:
查詢員工平均工資和員工號
select avg(salary),employee_id from employees
*/
#1.簡單的查詢
SELECT SUM(salary) 和,AVG(salary) 平均值, MAX(salary)最高工資,MIN(salary) 最低工資,COUNT(salary) 個數
FROM employees;
#添加篩選條件
# 案例:查詢有獎金的員工的平均工資
SELECT AVG(salary) 平均工資
FROM employees
WHERE commission_pct IS NOT NULL;
##3.分組函數的參數可以是表達式
##案例2:查詢年薪的平均值
SELECT MAX(salary*12*(1+IFNULL(commission_pct)))
FROM employees;
##4.分組函數的參數類型可以是任意類型嗎?數值型?字符型?日期行?
/*
sum和avg只支持數值型做參數
max、min、count可以支持任意類型做參數
*/#用于測試
SELECT SUM(last_name),AVG(last_name) FROM employees;
SELECT MAX(last_name),MIN(last_name),COUNT(last_name) FROM employees;
SELECT SUM(hiredate),AVG(hiredate)FROM employees;
SELECT MAX(hiredate),MIN(hirdate),COUNT(hirdate) FROM employees;
##5.分組函數是否都忽略null?
/*
都忽略
*/
SELECT SUM(commission_pct),AVG(commission_pct),SUM(commission_pct)/35,SUM(commission_pct)/107 FROM employees;
SELECT MAX(commission_pct),MIN(commission_pct) FROM employees;
##6.count
/**
count(*):統計結果集中的行數【推薦使用】
count(字段):統計該字段中非空值的個數
count(1):統計結果集合中的行數*/
SELECT COUNT(*) FROM employees WHERE department_id>100;
SELECT COUNT(1) FROM employees WHERE department_id>100;
SELECT COUNT(DISTINCT department_id) FROM employees;
總結
以上是生活随笔為你收集整理的mysql中有没有单行函数_MySQL之函数(单行函数、分组函数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python魔术方法由谁定义_Pytho
- 下一篇: mysql判断是否在日期区间_通过sql