一、分组函数
/*
功能;用作统计使用,又称为聚合函数或统计函数或组函数
分类:
sun求和、avg平均值、max最大值、min最小值、count计算个数
sum和avg只支持数值型
max和min支持数值型、字符型和日期型、
count支持所有类型
所有函数都忽略null
*/
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT COUNT(salary) FROM employees;
SELECT
SUM(salary) AS 和,
AVG(salary) AS 平均值,
MAX(salary) AS 最大值,
MIN(salary) AS 最小值,
COUNT(salary) AS 个数
FROM
employees ;
SELECT
SUM(commission_pct),
AVG(commission_pct),
MAX(commission_pct),
MIN(commission_pct),
COUNT(commission_pct)
FROM
employees ;
#和distinct搭配实现去重运算
SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;
#count详细介绍
#一般用count(*)统计行数
SELECT COUNT(*) FROM employees;#显示一个表有多少行
SELECT COUNT(salary) FROM employees;
/*
MYISAM存储引擎
INNODB存储引擎
*/
/*
5、和分组函数一同查询的字段要求是group by后的字段
错误写法
SELECT AVG(salary),`department_id` FROM employees;
虽然没有报错但是这种写法是错误的因为`department_id`只显示一个数据
*/
/*
相关题;
*/
#1.查询公司员工工资的最大值,最小值,平均值,总和
SELECT
MAX(salary) AS 最大值,
MIN(salary) AS 最小值,
AVG(salary) AS 平均值,
SUM(salary) AS 总和
FROM
employees ;
#2.查询员工表中的最大入职时间和最小入职时间的相差天数(DIFFRENCE )
SELECT DATEDIFF(MAX(`hiredate`),MIN(`hiredate`)) AS `DIFFRENCE` FROM employees;
#DATEDIFF函数两个参数皆为日期,第一个参数的值减去第二参数值返回的是天数。
SELECT DATEDIFF(NOW(),'1998-03-14');
#3.查询部门编号为90的员工个数
SELECT
COUNT(*)
FROM
employees
WHERE `department_id` = 90 ;
二、IFNULL方法
MySQL IFNULL函数简介
MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,IFNULL函数返回第二个参数。
两个参数可以是文字值或表达式。
以下说明了IFNULL函数的语法:
IFNULL(expression_1,expression_2);
如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。
IFNULL函数根据使用的上下文返回字符串或数字。。
三、concat方法
#CONCAT()函数的使用
SELECT CONCAT('a','b','c') AS 结果1;
SELECT CONCAT(first_name,last_name) AS 姓名 FROM employees;
SELECT
CONCAT(
`first_name`,
',',
`last_name`,
',',
`email`,
',',
`phone_number`,
',',
IFNULL(commission_pct, 0)
) AS out_put
FROM
employees ;