• MySQL——单行函数和分组函数


    2023.9.3

            单行函数的SQL语句学习笔记如下:

    1. #常见单行函数介绍(部分省略)
    2. #字符函数
    3. #将姓变大写,名变小写,然后拼接。
    4. SELECT CONCAT(UPPER(`last_name`),' ',LOWER(`first_name`)) AS 姓名 FROM `employees`;
    5. # 姓名中首字符大写,其他字符小写然后用_拼接,显示出来
    6. SELECT CONCAT(UPPER(SUBSTR(`last_name`,1,1)),'_',LOWER(SUBSTR(`last_name`,2))) AS 姓名 FROM `employees`;
    7. #查询员工的工资,要求部门号=30,显示的工资为1.1倍 部门号=40,显示的工资为1.2倍 部门号=50,显示的工资为1.3倍 其他部门,显示的工资为原工资
    8. SELECT salary AS 原工资,`department_id`,
    9. CASE `department_id` WHEN 30 THEN salary*1.1 WHEN 40 THEN salary*1.2 WHEN 50 THEN salary*1.3 ELSE salary END AS 新工资 FROM `employees`;
    10. ##案例:查询员工的工资的情况 如果工资>20000,显示A级别 如果工资>15000,显示B级别 如果工资>10000,显示c级别 否则,显示D级别
    11. SELECT salary,
    12. CASE
    13. WHEN salary>20000 THEN 'A'
    14. WHEN salary>15000 THEN 'B'
    15. WHEN salary>10000 THEN 'C'
    16. ELSE 'D'
    17. END AS 工资级别
    18. FROM `employees`;

    常见函数测试题:

    1. SELECT NOW();
    2. SELECT `employee_id`,`last_name`,`salary`,`salary`*1.2 AS 'new salary' FROM `employees`;
    3. SELECT LENGTH(`last_name`) AS 长度,SUBSTR(`last_name`,1,1) AS 首字母,`last_name` FROM `employees` ORDER BY 首字母;
    4. SELECT CONCAT(`last_name`,' earns ',salary,' monthly but wants ',salary*3) AS 'dream salary' FROM `employees` WHERE salary=24000;
    5. SELECT `last_name`,`job_id`,
    6. CASE `job_id`
    7. WHEN 'AD_PRES' THEN 'A'
    8. WHEN 'ST_MAN' THEN 'B'
    9. WHEN 'IT_PROG' THEN 'C'
    10. WHEN 'SA_REP' THEN 'D'
    11. WHEN 'ST_CLERK' THEN 'E'
    12. END AS grade FROM `employees`
    13. WHERE `job_id`='AD_PRES';

             分组函数的SQL学习笔记:

    1. #常见分组函数介绍
    2. #功能:用作统计使用,又称为聚合函数或统计函数或组函数
    3. SELECT SUM(salary) FROM `employees`;
    4. SELECT AVG(salary) FROM `employees`;
    5. SELECT MAX(salary) FROM `employees`;
    6. SELECT MIN(salary) FROM `employees`;
    7. SELECT COUNT(salary) FROM `employees`;
    8. SELECT SUM(salary) AS 薪资和,ROUND(AVG(salary),2) AS 平均薪资 FROM `employees`;
    9. SELECT MAX(`last_name`),MIN(`last_name`) FROM `employees`;
    10. SELECT SUM(`commission_pct`),AVG(`commission_pct`) FROM `employees`;#分组函数会忽略null值。
    11. SELECT COUNT(DISTINCT salary),COUNT(salary) FROM `employees`; #搭配distinct使用
    12. SELECT COUNT(*) FROM `employees`;
    13. SELECT COUNT(1) FROM `employees`;#同上

    分组函数测试题:

    1、查询公司员工工资的最大值,最小值,平均值,总和

    2、查询员工表中的最大入职时间和最小入职时间的相差天数(DIFFRENCE)查询都门编号为90的员工个数

    3、查询部门编号为90的员工个数

    1. # 分组函数测试题
    2. SELECT MAX(salary),MIN(salary),ROUND(AVG(salary),2),SUM(salary) FROM `employees`;
    3. SELECT DATEDIFF(MAX(`hiredate`),MIN(`hiredate`)) FROM `employees`;
    4. SELECT COUNT(*) AS 个数 FROM `employees` WHERE `department_id`=90;


     

  • 相关阅读:
    Leetcode 16.07 最大数值
    《MATLAB智能算法30个案例》:第1章 谢菲尔德大学的MATLAB遗传算法工具箱
    编程之美4 Nim游戏
    Python中8种经典数据结构 之 列表
    GLAMD: Global and Local Attention Mask Distillation for Object Detectors
    【word密码】如何给word文件设置带有密码的只读方式?
    c# xml 参数配置表的使用
    14数据结构与算法刷题之【深搜&宽搜递归&分治&剪枝回溯】篇
    C语言代码质量与架构调整(三)
    文献阅读(207)FPGA HBM
  • 原文地址:https://blog.csdn.net/m0_61028090/article/details/132656858