MySQL中百分数生成和排序

【DRAM存储器四】DRAM存储器的架构演进-part1 详述以提升吞吐量为目标的DRAM架构变化 阅读详情

问题描述

最近在开发APP的一个报表后台,使用的是MySQL数据库,遇到一个很郁闷的问题就是MySQL对百分比排序的处理,之前的报表都是在Oracle当中,从来没纠结过百分比怎么处理。在MySql中百分比直接排序效果如下;

100%

90%

9%

80%

8%

70%

这个坑爹问题已经很明显了,下面说下怎么处理

解决过程

首先看一下‘100%’怎么生成:

CONCAT(ROUND(num1*100/num2,2),'%')

这里的意思就是:

ROUND(num1*100/num2,2)结果保留2位有效数字

CONCAT(num,'%')在num后面加上‘%’

CASE-WHEN处理:num2不能为0

CASE

  WHEN num2=0THENCONCAT(0.00,'%')

  ELSEnum = num1/num2

ENDASNum

除数、被除数都‘+1’处理

num = (num1+1)/(num2+1)当然这里是指数据很庞大,如果你的数据很小的话,也可以+0.01,这个视情况而定。

SQL案例

SELECT

  ad.PROVINCE_ID,

  ad.PROVINCE_NAME,

  SUM(ad.SEND_NUM) AS SEND_NUM,

  SUM(ad.CONFIRM_SIGN_NUM) AS SIGN_NUM,

  SUM(ad.POS_SIGN_NUM) AS POS_SIGN_NUM,

  SUM(ad.APP_SIGN_NUM) AS APP_SIGN_NUM,

  CASE

    WHEN (

      SUM(ad.CONFIRM_SIGN_NUM) + SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

    ) = 0

    THENCONCAT(0.00, '%')

    ELSECONCAT(

      ROUND(

        (

          SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

        ) * 100 / (

          SUM(ad.CONFIRM_SIGN_NUM) + SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

        ),

        2

      ),

      '%'

    )

  ENDAS ACT_SIGN_RET

FROM

  app_sign_data ad

WHERE ad.CREATE_DATE > '2016-7-28'

  AND ad.CREATE_DATE < '2016-8-1'

GROUPBY ad.PROVINCE_NAME

ORDERBY

  CASE

    WHEN (

      SUM(ad.CONFIRM_SIGN_NUM) + SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

    ) = 0

    THEN (

      SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

    ) * 100 / (

      SUM(ad.CONFIRM_SIGN_NUM) + SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

    ) = 0

    ELSE (

      SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

    ) * 100 / (

      SUM(ad.CONFIRM_SIGN_NUM) + SUM(ad.POS_SIGN_NUM) + SUM(ad.APP_SIGN_NUM)

    )

  ENDDESC

  /*(SUM(ad.POS_SIGN_NUM)+SUM(ad.APP_SIGN_NUM)+0.01)*100/

  (SUM(ad.CONFIRM_SIGN_NUM)+SUM(ad.POS_SIGN_NUM)+SUM(ad.APP_SIGN_NUM)+0.01) DESC*/

 

13、使用 Mathematica 撰写文本 本文详细介绍了如何使用 Mathematica 进行文本撰写与处理。内容涵盖文本输入、格式设置、结构化排版、超链接插入、翻译与拼写检查工具的使用,以及将笔记本导出为多种格式(如 PDF、HTML、LATEX 和 RTF)的方法。通过实例演示了创建专业文档的完整流程,包括样式设置、公式推导、标题编号、页眉页脚配置等操作。适合希望利用 Mathematica 编写学术论文、技术报告或教学资料的用户参考。 阅读详情

相关推荐

PG-FP6编程器错误代码解析与高效排障实战指南

在嵌入式系统开发与量产烧录中,编程器是连接开发环境与目标硬件的重要桥梁。其工作原理是通过特定的通信协议(如UART、SWD)与微控制器(MCU)建立连接,完成程序代码的写入、擦除与校验。这项技术的核心价值在于确保固件能够准确、可靠地部署到硬件中,是产品从原型到量产的关键环节。在实际的工程实践中,尤其是在使用瑞萨(Renesas)PG-FP6这类编程器进行调试或批量生产时,工程师常会遇到各种通信失败、编程验证错误或电源异常等问题,这些问题往往以特定的错误代码形式呈现。深入理解这些错误代码背后的硬件连接、电源时

weixin_34387468的博客 580

MySQL 百分比排序

MySQL 字符串数值百分比排序

qq_42177787的博客 1569

机器视觉--线扫相机触发:从原理到选型,构建高效成像方案

本文深入解析线扫相机触发技术,从硬件编码器触发到软件触发方案,提供详细的性能对比和选型指南。通过实际案例展示如何构建高效成像方案,特别适合机器视觉领域需要精准控制的应用场景,如工业检测和自动化生产线。

weixin_42531886的博客 415

mysql 按比例计算排名_计算MS SQL中的百分比排名

第50百分位与中位数相同。在计算其他百分位数时,比如说第80位,按照升序排序80%数据的数据,其他百分数按降序排序,并取两个中间值的平均值。注意:中位查询已经存在了很长一段时间,但不记得我从哪里得到它,我只修改它来计算其他百分点。DECLARE @Temp TABLE(Id INT IDENTITY(1,1), DATA DECIMAL(10,5))INSERT INTO @Temp VALUES...

weixin_39978101的博客 2073

无线充电效率从75%到90%+:深入拆解LCC补偿网络如何成为电动汽车和智能车竞赛的‘稳压器’

本文深入探讨了LCC补偿网络如何显著提升无线充电效率至90%以上,成为电动汽车和智能车竞赛中的关键技术。通过分析LCC的三元件结构和双模式切换特性,揭示了其在负载突变和线圈错位情况下的稳定性优势,并展示了实际应用中的效率提升和产业化挑战。

weixin_42528191的博客 396

保姆级教程:Java调用海康SDK实现录像回放与倍速播放(附完整代码)

本文详细介绍了如何使用Java调用海康SDK实现录像回放与倍速播放功能,包括开发环境配置、设备连接、流媒体处理、倍速播放实现及性能优化等关键步骤。通过完整的代码示例和实战经验,帮助开发者快速构建智能录像回放系统,提升开发效率。

weixin_29285605的博客 357

不同的SQL平台,如何取前百分之N的记录?

击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货SQL专栏SQL基础知识第二版SQL高级知识第二版最近帮业务部门梳理业务报表,其中有个需求是就算某指标等待时间最长的前百...

SQL数据库开发 3501

别再用Selenium被秒封了!2026最新反爬全突破+动态渲染实战(通过率99%)

做爬虫的同学,肯定都有过这样的经历:遇到一个纯前端渲染的网站,Requests抓包只能拿到一堆空的div标签,所有数据都是JS动态生成的。这时候你想到了Selenium,结果刚打开浏览器,网站直接跳出来一个"检测到机器人访问"的页面,或者直接返回403。我之前做一个跨境电商的爬虫项目,就踩了这个大坑。一开始用默认的Selenium ChromeDriver,10次请求有9次被封,通过率不到10%。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1385

Mysql8.0使用窗口函数解决排序问题

最近在学习mysql过程中发现,在mysql5.0版本中,排序尤为复杂,是一个很头疼的问题。 一、mysql5.0 例如:我们要计算销售人员的销售额,结果按从高到低排序,查询结果中要包含销售的排名。 1、计算销售人员的销售额,结果按从高到低排序 这一部分我们可以直接使用group by对销售人员分组,使用聚合函数sum对销售额进行求和,结果对销售额使用order by 排序就可以。语句如下:...

weixin_46084216的博客 942

手把手教你学simulink(36.1)--ACAC变换器场景示例:基于 Simulink 的矩阵变换器(Matrix Converter)

矩阵变换器(Matrix Converter, MC)是一种直接将交流电(AC)转换为不同频率和幅值的交流电的电力电子设备。与传统的基于直流环节的变频器不同,矩阵变换器不需要中间的直流环节,而是通过双向开关直接在输入和输出之间进行能量传递。这种结构使得矩阵变换器具有更高的效率、更小的体积和更好的动态响应。在本项目中,我们将使用 MATLAB/Simulink 来建模和仿真一个矩阵变换器,并分析其性能。Simulink 是一个强大的仿真工具,特别适合用于电力电子系统的建模和仿真。

MHD0815的博客 1065

使用安卓的IMU数据进行 行人航位推算(PDR)推算步长 附python 代码

加速度计数据、陀螺仪数据、重力传感器数据、姿态仰角数据。数据分析与定位轨迹生成主要使用Python离线完成。示意图。

三维点云技术探索 1913

MySQL8.0窗口函数之排名函数(rank、dense_rank)的使用

转载 窗口函数简介 MySQL从8.0开始支持开窗函数,这个功能在大多商业数据库中早已支持,也叫分析函数。 开窗函数与分组聚合比较像,分组聚合是通过制定字段将数据分成多份,每一份执行聚合函数,每份数据返回一条结果。 开窗函数也是通过指定字段将数据分成多份,也就是多个窗口,对每个窗口的每一行执行函数,每个窗口返回等行数的结果。 窗口函数分为静态窗口和滑动窗口,静态窗口的大小是固定的,滑动窗口的大小可以根据设置进行变化,在当前窗口下生成子窗口。 语法简介 语法:函数名([参数]) over(partitio

Hubert的博客 2761

Universal Robot——在Gazebo中模拟UR5机器人

今天的目标是在Gazebo安装我们的ur5机器人。Gazebo是一个流行的模拟工具,它不仅可以让你像在Rviz中一样可视化你的机器人,而且还内置了一个物理引擎。这样你就可以在更真实的环境中测试你的机器人应用程序。我们将查看我们需要的属性 添加对我们的机器人——我们的order的描述,以模拟它以及如何在Gazebo中生成我们的机器人。

如果想成为中心,那么就到中心去吧。 1969

mysql三表连接查询以及百分数排序

表结构: User(UID,Uname,Uage,Usex)用户表 Product(PID,Pname)产品表 UscSCore(UID,PID,UseSCore)评价表(评价满分100,60分为及格) 请按产品评价及格率的百分数从高到低排序; 首先分析一下题目以及涉及的问题 mysql三表连接查询 控制usescore的分数,100为满分 及格率=及格产品数/产品总数 mysql百

key_1997的博客 2985

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

MYSQL中查询的字段值包含%如何正确排序

MySQL中,如果你有一列包含字符串形式的百分比值(如 "100%", "10%", "90%"),并且你想按照这些百分比的实际值进行排序,你需要先将这些字符串转换为数字。另外,如果你正在尝试将包含百分比字符串的列转换为数字类型以便进行排序,你应该确保字符串的格式是正确的,并且只包含数字和百分号。这个功能在 MySQL 的多个版本中都是可用的,包括较旧的版本和最新的版本。函数在 MySQL 中是通用的,并且没有版本限制,但你需要确保你正在使用的 MySQL 版本支持你想要进行的数据类型转换。

小邓学Java的博客 1167

STM32F407中文手册

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

mysql 百分比 字符串 拼接后的排序

有时候我们的前台页面需要展示百分比数据;例如 生产率:98.99%  ,这样一个数据后台拼接到前台 就变成一个字符串排序 那么百分比字符串排序就会如下一个问题:会按第一列排序;导致一个错误的排序。   如何解决这个问题啦? 数字字符串排序可以按一下操作进行; 方法一:ORDER BY '123'+0;(首推) 方法二:ORDER BY '123'*1;  方法三:ORDER BY...

cf1269303289的博客 3223

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

关于数据库百分数排序(包含字符串截取,指定字符查找,类型转换)

需求: 在profit(收益)表中包含一列 ‘rate(费率)’为百分比,数据类型为varchar,插入的数据为百分数(即xx.xx%)。要求按照百分比的大小排序,数据库为oracle。 分析: 以升序为例,该需求中rate字段为varcahr类型,因此直接排序会出现“1%->10%->11%->2%->3%”的...

weixin_33694620的博客 1184

MySQL:开窗函数

当查询条件需要用到复杂子查询时,聚合函数操作起来非常麻烦,因此使用开窗函数能够轻松实现。注意:在Oracle中称为分析函数。在MySQL中称为开窗函数,使用于MySQL8.0以上版本,sql sever、hive、Oracle等。

weixin_48719464的博客 3223

mysql的group_concat函数内中CONCAT排序

SELECT ui.id, group_concat( mi.ord ORDER BY mi.ord , CONCAT( mi.meter_item_name, '--', mi.id ) AS onedata FROM user_info ui,meter_item mi 上面的sql的CONCAT联合了2个字段,group_concat内使用mi.ord排...

wangbingqi的专栏 1626

使用doris数据库,varchar类型排序无法实现解决方案

doris 无法排序

m0_50843430的博客 1735

Mysql综合练习50题

Mysql综合练习50题 文章目录Mysql综合练习50题表关系建表插入数据操作表1、查询学生总人数;2、查询“生物”课程和“物理”课程成绩都及格的学生id和姓名;3、查询每个年级的班级数,取出班级数最多的前三个年级;4、查询平均成绩最高和最低的学生的id和姓名以及平均成绩;5、查询每个年级的学生人数;6、查询每位学生的学号,姓名,选课数,平均成绩;7、查询学生编号为“2”的学生的姓名、该学生成绩最高的课程名、成绩最低的课程名及分数;8、查询姓“李”的老师的个数和所带班级数;9、查询班级数小于5的年级id和

贤哲XianZhe的博客 1733

mysql查两门课的平均成绩_6、MySQL测试题

MySQL测试题一、表关系表关系请创建如下表,并创建相关约束二、操作表1、自行创建测试数据2、查询“生物”课程比“物理”课程成绩高的所有学生的学号;3、查询平均成绩大于60分的同学的学号和平均成绩;4、查询所有同学的学号、姓名、选课数、总成绩;5、查询姓“李”的老师的个数;6、查询没学过“叶平”老师课的同学的学号、姓名;7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;8、查询...

weixin_35629057的博客 3023

mysql001课程成绩002,6、MySQL测试题

MySQL测试题一、表关系表关系请创建如下表,并创建相关约束二、操作表1、自行创建测试数据2、查询“生物”课程比“物理”课程成绩高的所有学生的学号;3、查询平均成绩大于60分的同学的学号和平均成绩;4、查询所有同学的学号、姓名、选课数、总成绩;5、查询姓“李”的老师的个数;6、查询没学过“叶平”老师课的同学的学号、姓名;7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;8、查询...

weixin_39763293的博客 1054

MySQL——窗口函数

语法 函数名称([字段名]) OVER([PARTITION BY <分组字段>][ORDER BY <排序字段> [DESC]] [<FRAME字句>]) PARTITION BY字句:按照指定字段进行分区,两个分区由边界分割,即所谓的"窗口"。如果没有指定,那么它把整个结果集作为一个分组。窗口函数在不同的分区内分别执行,在跨越分区边界时重新初始化。 ORDER BY子句:按照指定字段进行排序,开窗函数将按照排序后的记录顺序进行编号。可以和PARTITION BY子句

吴声子夜歌的博客 1882

mysql中查询没有选修某两门课的_某学校教师、学生、课程及成绩MySQL分析

现有四张表格,分别是教师表、学生表、课程表和成绩表:教师表:(t_id, t_name)-教室编号,教师姓名 表一 教师表学生表:(s_id,s_name,s_birth,s_sex)-学生编号,学生姓名,出生日期,学生性别 表二 学生表课程表:(c_id,c_name,ct_id)-课程编号,课程名称,教师编号 表三 课程表成绩表:(s_id,c_id,s_score)-学生编号,课程编号...

weixin_39796855的博客 2893

mysql从高到底排序_【mysql】排序方操作50题练习及其答案

1.创建数据库、相关表,并插入数据create database homework;use homework;create table class_grade(gid int primary key auto_increment, gname char(16));create table class(cid int primary key auto_increment, caption char(...

weixin_39610488的博客 641
上一篇: Java系统中JSON的封装
下一篇: div、css的浮动布局
午-夜
博客等级 码龄12年 95粉丝 133原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值