首页 > 数据库 >pg数据库百分比处理二

pg数据库百分比处理二

时间:2022-11-06 16:36:45浏览次数:65  
标签:百分比 complete 数据库 numeric pg 100 total round 除数

感谢原文链接:https://blog.csdn.net/magi1201/article/details/115719675

PostgreSQL数据库中,两个integer类型数据,如何处理为百分比形式

有表 student ,其中id字段为character类型,total和complete字段为integer型

img

total为总任务量,complete为完成任务量,当前诉求,求出完成率,保留一位小数

操作尝试

一,直接相除 complete/total,可以看到结果为0

img

这里为0,因为两个字段均为integer型,会按整数相除处理。

二,使用round函数 round(complete/total, 1)

img

这里结果与操作一类似,只是加了小数点。因为round只是对round(complete/total, 1)中输入的原值做格式化处理,而原值complete/total依然遵循两个integer数据相除的原则。

查看round后的结果列,结果值类型为 numeric,尝试将除数或被除数设置为numeric类型

三、除数小数化 complete::numeric,round(complete::numeric/total, 3)

img

这里的操作,将complete做了小数化,这里,可以同时将total做小数化,效果相同

四,百分比形式

如果要将结果展示为百分比形式,比如0.125要展示为12.5%

img

这里做了一个操作 *round(complete***100**::numeric/total, 1)**||'%'***

  • 除数complete 乘以 100
  • round小数保留3位修改为了*1*
  • round函数外拼接 *|| '%'*

五、除数为0处理

如果除数total有为0的情况,complete/total 会报错,使用case when 关键字

select complete, total,
*(case when total=0 then '/' else round(complete*100::numeric/total, 1)||'%' end) as complete_rate*
from student;

img

如此,除数为0的问题也成功解决。

MySQL数据库字段值百分比展示

利用 round函数和concat函数进行配合使用。

select concat(round(0.1596/100 * 100,2),'%')

image-20221028155539400

公式
select concat(round(数字/100 * 100,保留几位小数),'%')
使用   || 不知道好使不好使,oracle 是可以的用|| 来拼接的.

有时候需要以下三个函数一起使用

concat(round(case when sum(字段)=0 then 0  else sum(字段)/sum(字段) end *100, 2) ,'%') 

标签:百分比,complete,数据库,numeric,pg,100,total,round,除数
From: https://www.cnblogs.com/javaxubo/p/16862920.html

相关文章

  • pg数据库百分比处理
    参考声明:https://blog.csdn.net/magi1201/article/details/115719675PostgreSQL数据库中,两个integer类型数据,如何处理为百分比形式有表student,其中id字段为characte......
  • 【WPF】ConfigurationManager连接sqlite数据库
     提供对客户端应用程序配置文件的访问。此类不能被继承。1、引用ConfigurationManager在Nuget引入ConfigurationManager。usingSystem.Configuration;  2、添......
  • xilinx tpg 彩条
    ​ 功能1. 单axi-stream接口输入,axis输出。(10bitrbg输出) ​编辑   2.使用xilinxhls编写。​编辑  3.配置寄存器有  #pragmaHLSINTERFAC......
  • SQLServer数据库优化
    当遇到如下250的SQL时,又没办法改SQL,只能优化数据库的情况下。索引pid,no,equipmentCode,和索引pid,有着巨大的差异。在索引中包含orderby的列,将极大提升速度。ROW_NUMB......
  • 移动端流式布局(百分比布局)、图片格式
    移动端流式布局(百分比布局)、图片格式1、流式布局(百分比布局)流式布局,就是百分比布局,也称非固定像素布局。通过盒子的宽度设置成百分比来根据屏幕的宽度来进行伸缩,不......
  • 麒麟信安V3.4 安装PG15的过程
    麒麟信安V3.4安装PG15的过程背景发现基于OpenEuler的几个系统使用CentOS的rpm包安装PG数据库时有问题.会提示缺少依赖的so文件.今天想着解决一下,就百度了一下并且......
  • 第三十八章 构建数据库应用程序 - 处理表单提交请求
    第三十八章构建数据库应用程序-处理表单提交请求除了在表单中显示对象的内容外,前面的示例还在用户通过单击Save提交表单时保存对对象的更改。它的工作原理如下。当表......
  • 002.打通数据库链路
    1.配置数据库application.propertiesspring.datasource.name=imooc_mall_datasourcespring.datasource.url=jdbc:mysql://127.0.0.1:3306/imooc_mall?useUnicode=true&c......
  • 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 数据持久化设计,基于Entity Fr
    前言EntityFrameworkCore可通过名为数据库提供程序的插件库访问许多不同的数据库。作为《乘风破浪,遇见最佳跨平台跨终端框架.NetCore/.Net生态-适用于EntityFrame......
  • 直升机FPGA多路视频采集叠加OSD字符VGA-HDMI-DVI-SDI采集融合板卡设计
    视频融合技术是虚拟现实技术的一个分支,也可以说是虚拟现实的一个发展阶段。视频融合技术指将一个或多个由视频采集设备采集的关于某场景或模型的图像序列视频与一个与之相关......