当前位置: 首页 > news >正文

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

2023.9.3

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

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

常见函数测试题:

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

         分组函数的SQL学习笔记:

#常见分组函数介绍
#功能:用作统计使用,又称为聚合函数或统计函数或组函数
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 薪资和,ROUND(AVG(salary),2) AS 平均薪资 FROM `employees`;
SELECT MAX(`last_name`),MIN(`last_name`) FROM `employees`;
SELECT SUM(`commission_pct`),AVG(`commission_pct`) FROM `employees`;#分组函数会忽略null值。
SELECT COUNT(DISTINCT salary),COUNT(salary) FROM `employees`; #搭配distinct使用
SELECT COUNT(*) FROM `employees`;
SELECT COUNT(1) FROM `employees`;#同上

分组函数测试题:

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

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

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

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


 

http://www.lryc.cn/news/157606.html

相关文章:

  • 百度百科词条怎么更新?怎么能顺利更新百科词条?
  • PPT怎么转换为PDF格式,收藏这两个在线工具。
  • 八大排序算法----堆排序
  • Docker Desktop 设置镜像环境变量
  • springboot之一:配置文件(内外部配置优先顺序+properties、xml、yaml基础语法+profile动态切换配置、激活方式)
  • 涛然自得周刊(第 5 期):蝲蛄吟唱的地方
  • Android Ble蓝牙App(七)扫描过滤
  • 小程序当前页面栈以及跳转
  • jQuery获取表单的值val()
  • 【专栏必读】数字图像处理(MATLAB+Python)专栏目录导航及学习说明
  • 2023年非证券类投资银行业发展报告
  • Matlab 如何把频谱图的纵坐标设置为分贝刻度
  • VUE写后台管理(2)
  • RHCSA8.2
  • 修改linux中tomcat的端口
  • 学妹学Java(一)
  • 湖南省副省长秦国文一行调研考察亚信科技
  • k8s部署redis 3主3从
  • Vue2安装vuex和vue-router报错处理
  • 算法leetcode|79. 单词搜索(rust重拳出击)
  • 2023年高教社杯全国大学生数学建模竞赛参赛事项注意
  • 数学建模--逻辑回归算法的Python实现
  • Qt6_贪吃蛇Greedy Snake
  • Credo推出业界首款单片集成CMOS VCSEL驱动器的800G光DSP芯片
  • 【经验分享】如何使用VSCode对比两个文件
  • 从裸机开始安装ubuntu系统到安装NVIDIA驱动
  • 索尼 toio™ 应用创意开发征文|小巧机器,大无限,探索奇妙世界
  • 什么牌子的led台灯质量好?热门的Led护眼台灯推荐
  • 预推免,保研------长安大学保内,附加分面试准备【记录帖】
  • Linux开源防病毒引擎ClamAV