数据库 表内容操作--算法

-- mysql 的函数
-- 求和 sum(列名) 求出该列的和
-- 求s_emp员工的月总工资
SELECT SUM(salary) 月总工资
FROM s_emp;
-- 求出41号部门的月总工资
SELECT SUM(salary) '41号部门的月总工资'
FROM s_emp
WHERE dept_id = 41;

-- 平均值 AVG(列名) 返回该列的平均值
-- 求月 平均工资
SELECT ROUND(AVG(salary), 2) 月平均工资
FROM s_emp;
-- 求出41号部门的月平均工资
SELECT dept_id, ROUND(AVG(salary), 2) 月平均工资
FROM s_emp
WHERE dept_id = 41;

-- 最大值 MAX(列名) 返回该列的最大值
-- 1 求月薪的最大值
SELECT MAX(salary) 月薪的最大值
FROM s_emp;
-- 2 求出41号部门的最高月薪
SELECT dept_id 部门编号, MAX(salary) 最高月薪
FROM s_emp
WHERE dept_id = 41;
-- 3 求出谁的月薪最高
SELECT first_name 姓名, salary 月薪
FROM s_emp
WHERE salary = (SELECT MAX(salary) FROM s_emp) ;

-- 最小值 MIN(列名) 返回该列的最小值
-- 1 求月薪的最小值
SELECT MIN(salary) 最低月薪
FROM s_emp;
-- 2 求41号部门的最低月薪
SELECT dept_id 部门编号, MIN(salary) 最低月薪
FROM s_emp
WHERE dept_id = 41;

-- 3 求谁的月薪最低
SELECT first_name 姓名, salary 月薪
FROM s_emp
WHERE salary = (SELECT MIN(salary) FROM s_emp);
-- 使用子查询来实现
-- 一个查询的内部又嵌套了另外一个查询
-- 求谁的月薪最低
-- 1 求出月薪最低 750
SELECT MIN(salary)
FROM s_emp;
-- 2 求出谁的月薪等于最低月薪 750
SELECT first_name, salary
FROM s_emp
WHERE salary = (
    SELECT MIN(salary)
    FROM s_emp);

-- 查询出谁的提成最高
SELECT
MAX(ROUND(salary * IFNULL(pct, 0)/100, 2)) 提成
FROM s_emp;
SELECT first_name, salary, pct, ROUND(salary * IFNULL(pct, 0)/100, 2)
FROM s_emp
WHERE salary * IFNULL(pct, 0)/100 = (
    SELECT MAX(salary * IFNULL(pct, 0)/100)
    FROM s_emp);
SELECT first_name, pct
FROM s_emp
WHERE pct = (
    SELECT MAX(pct)
    FROM s_emp);
    

-- 统计行数 COUNT(列名) 返回非空行的总行数
-- 统计员工个数
SELECT COUNT(id) 员工个数
FROM s_emp;
SELECT COUNT(first_name) 员工个数
FROM s_emp;
SELECT COUNT(pct) 员工个数
FROM s_emp;
-- COUNT(整数值) 也可以返回表的行数
SELECT COUNT(99) 员工个数
FROM s_emp;
SELECT COUNT(-99) 员工个数
FROM s_emp;
SELECT COUNT(0) 员工个数
FROM s_emp;
-- COUNT(*) 返回表的行数
SELECT COUNT(*) 员工个数
FROM s_emp;

-- 求31号部门的员工总数,最高工资,最低工资,平均工资
SELECT dept_id, COUNT(*) 员工总数, MAX(salary), MIN(salary), ROUND(AVG(salary), 2)
FROM s_emp
WHERE dept_id = 31;
-- SELECT first_name, salary
-- FROM s_emp
-- WHERE dept_id = 31;
-- 求32号部门的员工总数,最高工资,最低工资。平均工资
SELECT dept_id, COUNT(*) 员工总数, MAX(salary), MIN(salary), ROUND(AVG(salary), 2)
FROM s_emp
WHERE dept_id = 32;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值