(篇十)MySQL内置函数续

目录

🏀控制流函数

⚽计算各个职位的年薪,如果是董事长按照15薪算,总经理13薪,其余都为12薪

⚽计算所有职位提成之和

🏀窗口函数(基础)

⚽查询2019年每月支付总额和当年累计支付总额

⚽查询2019年每个月的近三个月移动平均支付金额

⚽2020年1月,购买商品品类数的用户排行


控制流函数

以这张职位薪资表为例:

计算各个职位的年薪,如果是董事长按照15薪算,总经理13薪,其余都为12薪

使用if(v1,v2,v3):

使用case when...then..else..end:

语法

case

when exrp1 then exrp2

...

end 

必须end结束

第一种使用就类似java中的if()else if()

第二种则是类似switch()case:

计算所有职位提成之和

在MySQL中,NULL 值具有特殊的性质,当它与其他值进行算术运算时,结果通常是 NULL

所有我们需要判断值是否是null,如果为null我们可以替换为0进行计算。

所以就可以采用ifnull(arg1,arg2)

窗口函数(基础)

        窗口函数,也叫分析函数,是为了解决需要在单表中满足某些条件的结果集内部做一些函数操作的需求的。

窗口函数是MySQL8.0之后才支持的写法。

语法:select 查询内容 over() from

over()括号内若不写,则意味着窗口函数基于满足where条件的所有行进行计算。

括号中可以写:

over(partition by < 要分列的组 > order by < 要排序的列 > rows between < 数据范
>)
数据范围:
rows between 2 preceding and current row # 取本行和前面两行
rows between unbounded preceding and current row # 取本行和之前所有的行
rows between current row and unbounded following # 取本行和之后所有的行
rows between 3 preceding and 1 following # 从前面三行和下面一行,总共五行

注意:查询内容后面如果跟窗口函数(over()),二者之间以空格分割

案例

查询2019年每月支付总额和当年累计支付总额

查询2019年每个月的近三个月移动平均支付金额

2020年1月,购买商品品类数的用户排行

三种排序方式:
row_number():每一行记录生成一个序号,依次排序且不会重复。 1234...rank():   跳跃排序,生成的序号有可能不连续。1134..
dense_rank():在生成序号时是连续的。1123...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/457888.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux取经路】探寻shell的实现原理

文章目录 一、打印命令行提示符二、读取键盘输入的指令三、指令切割四、普通命令的执行五、内建指令执行5.1 cd指令5.2 export指令5.3 echo指令 六、结语 一、打印命令行提示符 const char* getusername() // 获取用户名 {return getenv("USER"); }const char* geth…

npm 上传一个自己的应用(5) 删除自己发送到NPM官网的指定工具版本

上文 npm 上传一个自己的应用(4) 更新自己上传到NPM中的工具版本 并就行内容修改 我们更新了项目内容 然后更新了项目版本 那么 一些已经过时 甚至 当时上传的东西就有问题 我们又该怎么删除版本呢&#xff1f; 首先 我们还是要先登录 npm npm login然后 根据要求填写 Userna…

华为豪掷770亿分红 至少将惠及14万人

华为技术有限公司近期发布的各项信息显示其在ICT领域的持续创新和稳健经营&#xff1a; 华为最近公布了2023年的分红方案&#xff0c;计划分红总额达770.85亿元&#xff0c;该分红将惠及14万员工&#xff0c;人均可获得约54.2万元1678910。此次分红的税后收益率是15.3%&#xf…

MATLAB语音去噪系统

目录 一、背景 二、GUI页面 三、程序 3.1 LMS滤波程序 3.2 GUI程序 四、附录 一、背景 本文介绍了一种最佳的自适应滤波器结构&#xff0c;该结构采用最小均方差&#xff08;LMS&#xff09;作为判据&#xff0c;通过不断迭代自适应结构来调整得到最佳滤波器…

Gartner 2024年十大战略技术趋势解读

最近Gartner发布了2024年十大战略技术趋势报告&#xff0c;这十大技术趋势中有七项是关于AI技术及其技术应用相关。下面我们做一个简单解读。 首先&#xff0c;报告中着重强调了AI信任、风险和安全管理的重要性。企业需要对AI应用实施信任、风险和安全管理&#xff0c;以提高决…

leetcode9. 回文数|详细深入讲解算法

前往题目有 反转一半数字 思路 映入脑海的第一个想法是将数字转换为字符串&#xff0c;并检查字符串是否为回文。但是&#xff0c;这需要额外的非常量空间来创建问题描述中所不允许的字符串。 第二个想法是将数字本身反转&#xff0c;然后将反转后的数字与原始数字进行比较&…

使用npm包js-web-screen-shot做网页截图,可以对截图加文字,箭头等等,类似于微信截图

<template><div class"m-feedback-wrap" :style"{ top: ${feedbackHeight}px }"><div class"m-feedback-icon-wrap"><el-tooltipclass"item"effect"dark"content"内容"placement"left-…

springboot Feign方式注入注解详解

一、FeignClient注解详解 FeignClient是Spring Cloud中用于声明Feign客户端的注解&#xff0c;它使得编写HTTP客户端变得更简单。通过Feign的自动化配置机制&#xff0c;可以很容易地编写HTTP API客户端。以下是FeignClient的详解&#xff1a; 作用&#xff1a;FeignClient注解…

Pinia介绍和使用

1. pinia是什么 Pinia 是一个基于 Vue.js 的状态管理库&#xff0c;用于管理应用程序的数据。它提供了一种简单、直观且可扩展的方式来组织和访问应用程序的状态&#xff0c;下面是详细介绍 基于 Vue 3&#xff1a;Pinia 是专门为 Vue 3 开发的状态管理库&#xff0c;充分利用…

Termux配置安卓编译环境

前言 Termux安装后&#xff0c;就相当于把手机变成了一台Linux服务器&#xff0c;而且现在手机卡通常是能拿到ipv6公网地址的&#xff0c;所以&#xff0c;这个服务器能干啥&#xff1f; 编程搭建网站跑脚本 本文讲述的就是怎么在Termux搭建安卓编译环境&#xff0c;实现手机…

解决计算机“缺失ffmpeg.dll”报错?修复ffmpeg.dll文件方案

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“ffmpeg.dll丢失”。ffmpeg.dll是FFmpeg多媒体框架中的一个重要组件&#xff0c;它负责处理音频和视频的编解码。当打开某些软件时&#xff0c;如果系统找不到该文件&#xff0c;就会出现这…

【数据结构】链表OJ面试题3(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 记录每天的刷题&#xff0c;继续坚持&#xff01; 2.OJ题目训练 9. 给定一个链表&#xff0c;判断链表中是否有环。 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成…