Mysql 应用CASE WHEN 语句条件计算的一个实例

MySQL CASE...WHEN语句的多种用法 其中,expression是要评估的表达式,value1、value2等是要比较的值,result1、result2等是与每个值相关联的结果。WHEN语句是MySQL中一种灵活的条件语句,它允许根据不同的条件执行不同的操作。它可以根据不同的条件执行不同的操作,包括简单的条件判断、搜索条件判断、作为表达式使用以及嵌套的条件判断。其中,condition1、condition2等是要满足的条件,result1、result2等是与每个条件相关联的结果。在上述示例中,根据学生的成绩和年级,进行嵌套的CASE… 阅读详情

业务需求描述:

现有核减费用表edu_syn_hd_ded(ID  SERVICECODE   CUTTYPE   CUTFEE )

列定义:ID  服务号   核减类型    核减费用。

有核减规则:

1. 类型是01的,核减费用要除以0.35的比例,

2. 其他类型的,不用做处理直接计算

现需要:需要统计服务号为 102701 的业务的核减总费用

分析:

首先考虑如果没有条件时该如何计算,那么直接是按服务号聚集来计算SUM:

select SERVICECODE, SUM(CUTFEE)
           from edu_syn_hd_ded
           where
           SERVICECODE = '102701'
           group by SERVICECODE 

那么,现在考虑加入核减类型,需要使用CUTFEE分别求出实际的金额(按类型来处理,除以100是换算单位 分 到 元 ):

select CUTTYPE,SERVICECODE,
          (case
              when CUTTYPE = '01'
                then ifnull(round(sum(CUTFEE) / 0.35 / 100, 2), 0)
              else 
                ifnull(sum(CUTFEE) / 100, 0)
              end
              )as allcount

           from edu_syn_hd_ded
           where
           SERVICECODE = '102701'
           group by SERVICECODE, CUTTYPE

执行结果如图:

可以看到按照类型,我们已经得到了相应的金额。

接下来只要把查询结果相加即可,外层包一个查询:

select sum(allcount) from (select CUTTYPE,SERVICECODE,
          (case
              when CUTTYPE = '01'
                then ifnull(round(sum(CUTFEE) / 0.35 / 100, 2), 0)
              else 
                ifnull(sum(CUTFEE) / 100, 0)
              end
              )as allcount

           from edu_syn_hd_ded
           where
           SERVICECODE = '102701'
           group by SERVICECODE, CUTTYPE) temp;

执行结果如下:

分解问题,逐步实现,不要慌!

SQL中的case…when…还能这么用(计算好评率、计算出有条件的字段的数量) 文章目录SQL之CASE WHEN用法详解场景1:有分数score,score=60返回及格,score>=80返回优秀场景2:现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。场景3:经典行转列,并配合聚合函数做统计,现要求统计各个城市,总共使用了多少水耗、电耗、热耗,使用一条SQL语句输出结果场景4:CASE WHEN中使用子查询,根据城市用电量多少,计算用电成本。假设电能耗单价分为三档,根据不同的能耗值,使用相应价格计算成本。场景5:结合max聚合函数一道真实的面试题 SQL之CASE WHEN用法详解 简单CASE WH 立即下载

相关推荐

STM32 HAL 模拟I2C从机实战:软件实现与多设备通信优化

本文详细介绍了STM32 HAL库下软件模拟I2C从机的实现方法,包括GPIO开漏配置、基础信号实现、数据收发函数编写和多设备通信优化策略。通过灵活的软件模拟方案,解决了硬件I2C接口数量限制和稳定性问题,为多传感器数据采集等应用提供了可靠的通信保障。

motor的博客 912

第五章:MySQL DQL 进阶 —— 动态计算与分类(IF 与 CASE WHEN)多表查询

SQL条件判断与窗口函数摘要 SQL提供了IF()和CASE WHEN两种条件判断方式:IF()适合简单的二值判断,而CASE WHEN支持多条件分支,更适合复杂逻辑。在聚合分析中,可以结合SUM(IF())或SUM(CASE WHEN)实现条件计数。 窗口函数(MySQL 8.0+)是强大的分析工具,包含四大类函数:1)排名函数(ROW_NUMBER/RANK等)用于排序和去重;2)聚合窗口函数支持累计计算;3)偏移函数(LAG/LEAD)用于同比环比分析;4)分布函数用于百分位计算。通过OVER子句可定

chxii的专栏 3280

手把手教你设计MTBF加速寿命试验:从阿伦尼斯模型到卡方计算(含Excel模板)

本文详细介绍了如何设计MTBF加速寿命试验,从阿伦尼斯模型到卡方计算,帮助工程师在合理时间内获得准确的MTBF数据。通过工业电源模块的实例演示,涵盖活化能确定、温度应力设计、样本量计算及数据记录规范,并提供Excel模板实现自动化计算,显著提升测试效率。

weixin_42563415的博客 537

sql的条件判断函数 case when 求和计数,if 函数

Q2:统计总人数,男女人数和男女成年人数。Q1:统计每个学生的成绩级别。

socall_me_maybe的博客 1165

深入了解BPM及BPM业务流程管理系统

BPM 即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续地提高组织业务绩效为目的的系统化方法。它涵盖了业务流程的整个生命周期,包括流程的设计、执行、监控、分析和优化。BPM 作为一种先进的管理方法,对于企业提高运营效率、降低成本、提升客户满意度和增强竞争力具有重要意义。BPM 流程管理系统为企业实现 BPM 提供了强大的工具和支持,而 F2BPM 流程管理平台以其先进的技术架构、丰富的功能模块、简单易用的操作界面和强大的定制能力,成为企业实现业务流程管理的理想选择。

Stone3625的博客 2950

Windows下Python安装geopandas全攻略:解决GDAL依赖问题的5个关键步骤

本文详细解析了在Windows系统下安装Python地理空间分析库geopandas时,如何有效解决其核心依赖GDAL的编译难题。文章提供了五个关键步骤,包括理解依赖关系、获取预编译wheel文件、顺序安装及环境验证,旨在帮助用户绕过复杂的C++编译环境,顺利完成geopandas的安装部署。

weixin_28221501的博客 283

深入解析 SQL 中的 CASE WHEN 语句

CASE WHEN语句是 SQL 中一种常用的条件表达式,它允许我们根据不同的条件返回不同的结果。无论是数据查询、数据转换,还是复杂的条件判断,CASE WHEN语句都能提供极大的灵活性。本文介绍了CASE WHEN语句的基础语法和高级用法,展示了如何在不同的场景中灵活应用CASE WHEN语句来处理复杂的条件判断和数据处理任务。在实际项目中,合理使用CASE WHEN语句可以显著提高 SQL 查询的灵活性和可读性。建议结合业务场景,不断优化和调整CASE WHEN语句,提升数据查询和处理的效率。

qq_36078699的博客 5971

无网络环境部署:手动获取并安装OneNote for Windows 10完整指南

本文提供了一份详尽的OneNote for Windows 10离线安装指南。针对无网络或内网隔离环境,详细介绍了如何从官方渠道获取正确的产品ID,利用第三方工具下载纯净的.appxbundle安装包,并解决系统兼容性与依赖框架问题。最后,通过PowerShell管理员命令完成安全部署,是IT管理员和高级用户在离线环境下部署UWP应用的实用参考。

loss4bartender的博客 495

SQL之CASE WHEN用法详解

现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。当能耗值小于10时,使用P_LEVEL=0时的P_PRICE的值,能耗值大于10小于30使用P_LEVEL=1时的P_PRICE的值…如果表达式皆为false,则返回ElSE后result的值,如果省略了ELSE子句,则返回NULL。假设电能耗单价分为三档,根据不同的能耗值,使用相应价格计算成本。有能耗表如下:其中,E_TYPE表示能耗类型,0表示水耗,1表示电耗,2表示热耗。

Marathon_X的博客 8452

锁定放大器

锁定放大器

qq_46757048的博客 4706

第9.3章 从CMake基础到自动驾驶实战:构建跨平台C/C++项目的全能指南

《CMake构建实战:项目开发卷》精要指南 本文系统梳理了许宏旭《CMake构建实战》核心内容,涵盖C++构建全流程: 基础构建:详解MSVC/GCC编译器使用、Makefile编写及静态/动态库构建方法 CMake核心:解析语法结构、变量控制、文件操作等关键命令,阐述项目全生命周期管理 实战应用:通过快速排序、手写数字识别项目演示现代CMake实践,特别针对自动驾驶领域给出多传感器融合、SLAM等场景的CMake配置方案 特色价值:本书填补了官方文档实例不足的空白,提供300+代码示例,是掌握工业级C++

行知SLAM 1343

case when函数的使用

CASE 表达式 WHEN 值1 THEN 结果1 WHEN 值2 THEN 结果2 … [ELSE 默认结果] END 说明: 上面的语句将 CASE 后的表达式依次与每个 WHEN 后面的值进行相等比较。找到匹配项,则返回对应的结果。如果都不匹配,则返回 ELSE 的结果(如果提供了),否则返回 NULL。例如:SELECT order_id, status_code, CASE status_code WHEN 1 THEN ‘已下单’ WHEN 2 THEN ‘已发货’ WHEN 3 THEN ‘已

qq_22201881的博客 2167

跳蛛优化算法(JSOA)详解:从生物启发到算法实现

摘要: 跳蛛优化算法(JSOA)是一种受跳蛛狩猎行为启发的元启发式优化算法,通过模拟跳蛛的搜索猎物、迫害行为、跳跃捕食和信息素通信四种策略实现高效寻优。算法将跳蛛个体位置映射为候选解,利用物理学模型(匀加速运动、抛射轨迹)和随机策略(柯西分布、信息素机制)平衡全局探索与局部开发。JSOA具有参数少、收敛快的特点,适用于函数优化、路径规划等领域,其生物行为与数学抽象的对应关系(如表1所示)是其核心创新点。

qq_42212808的博客 124

MySQL-练习-数据汇总-CASE WHEN

需求:我们要在报表中显示每种产品的库存量,但我们不想简单地将“ units_in_stock”列放在报表中。SELECTCASE上面的SQL查询结果中,我们创建了一个新列, 通过CASE WHEN语句来对这一列赋值CASE WHEN语法上面的查询中,通过列的值来判断库存的可用性库存大于100 的可用性为高(high)50到100的可用性为中等(moderate)小于50的为低(low)零库存 为 (none)

2509_94001122的博客 1005

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MySQL中的CASE WHEN语句:用法、示例与解析

在SQL查询语句中,CASE语句是一个强大的条件表达式工具,它可以实现复杂的逻辑判断和计算,尤其是在MySQL数据库中。CASE WHEN结构允许开发者根据不同的条件执行不同的操作,类似于编程语言中的if-else语句。本文将详细介绍MySQL中CASE WHEN的两种基本用法及其实际应用。

2509_93994892的博客 273

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 微信小程序安卓系统下不显示BASE64图片问题
下一篇: 【蓝天准系统 + 970M + WIN10】此nvidia驱动程序与此windows不兼容
暴躁的外皮
博客等级 码龄16年 27粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值