如何解决 Oracle数据库 俩个整数相除结果为0 的问题
1:前言
最近开发遇到一个问题,就是我求任务完成率=完成数量/计划数量*100查询到,由于计划任务数量和完成任务数量都是整数,所以导致相除的时候,结果都是 0
1、我写的SQL:
SELECT SYSDATE AS 更新时间,'60' AS 密级,统计日期,创建时间,生产类型,计划数量,完成数量,DECODE(COALESCE(计划数量,0), 0, 0, ROUND(完成数量 / 计划数量, 2) * 100) AS 完成率
FROM (SELECT TO_CHAR(DATA_TIME, 'yyyy-mm') AS 统计日期,STAT_TIME AS 创建时间,PROD_TYPE AS 生产类型,(SELECT COUNT(WORK_ORDER_ID)FROM BRAIN.DWS_WORK_ORDER_INFOGROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 计划数量,(SELECT COUNT(WORK_ORDER_ID)FROM BRAIN.DWS_WORK_ORDER_INFOWHERE IF_COMP = '是'GROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 完成数量FROM BRAIN.DWS_WORK_ORDER_INFO)
执行结果:
明明7/8 等于 0.875,可结果确实0
2:结果思路
select 7/8 AS 完成率 from dual;
完成率:俩个Integer 类型相除肯定会是整数
后来我修改了一下,把Integer 类型转成 flaot 类型,
3:原本的SQL 修改如下:
CAST(COUNT(WORK_ORDER_ID) AS float)
SELECT SYSDATE AS 更新时间,'60' AS 密级,统计日期,创建时间,生产类型,计划数量,完成数量,DECODE(COALESCE(计划数量,0), 0, 0, ROUND(完成数量 / 计划数量, 2) * 100) AS 完成率
FROM (SELECT TO_CHAR(DATA_TIME, 'yyyy-mm') AS 统计日期,STAT_TIME AS 创建时间,PROD_TYPE AS 生产类型,(SELECT CAST(COUNT(WORK_ORDER_ID) AS float)FROM BRAIN.DWS_WORK_ORDER_INFOGROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 计划数量,(SELECT CAST(COUNT(WORK_ORDER_ID) AS float)FROM BRAIN.DWS_WORK_ORDER_INFOWHERE IF_COMP = '是'GROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 完成数量FROM BRAIN.DWS_WORK_ORDER_INFO)
结果:
如何解决 Oracle数据库 俩个整数相除结果为0 的问题相关推荐
- oracle数据库path,利用Path环境变量解决oracle数据库和owb工具不兼容问题!
利用Path环境变量解决oracle数据库和owb工具不兼容问题! 2009年5月4日 现象: 安装了oracle9i和owb10后往往会出现各自工具不能启动的现象,比如安装完oracle9i后再安装 ...
- oracle 游标 904,如何解决Oracle数据库游标连接超出问题
如何解决Oracle数据库游标连接超出问题 发布时间:2020-07-21 10:57:35 来源:亿速云 阅读:103 作者:小猪 这篇文章主要讲解了如何解决Oracle数据库游标连接超出问题,内容 ...
- oracle中12560,如何解决Oracle数据库ORA-12560错误问题
如何解决Oracle数据库ORA-12560错误问题 发布时间:2020-07-28 10:16:24 来源:亿速云 阅读:77 作者:小猪 栏目:数据库 这篇文章主要为大家展示了如何解决Oracle ...
- 忘记oracle管理员密码了,解决oracle数据库忘记系统管理员密码
解决oracle数据库忘记系统管理员密码 下面我分两步讲解这个问题,1)Oracle数据库的三种认证机制:2)oracle数据库忘记系统管理员密码怎么办? 1.Oracle数据库的三种认证机制 a)操 ...
- oracle扩展归档空间大小,解决Oracle数据库归档日志占满磁盘空间问题
1.常用命令 show parameter log_archive_dest; sql> archive log list; sql> select * from V$FLASH_RECO ...
- Oracle数据库的并行查询,解决Oracle数据库并行查询出错的方法
当我们在使用Oracle数据库的时候会发现Oracle数据库并行查询出错这一问题,那么你知道如何解决Oracle数据库并行查询出错吗?下面就是解决Oracle数据库并行查询出错的方法介绍. Oracl ...
- 不停应用重启oracle数据库,此类情况下解决Oracle数据库重启的四种方案
原题:Oracle数据库重启(内存参数numperm_global相关) 故障描述 Oracle数据库发生重启. 系统环境 AIX 6100-07-05-1228 Oracle 11g 故障分析 首先 ...
- oracle 行级死锁_解决Oracle数据库死锁
介绍 本文我们尝试总结在多个用户并发情况下,如何识别和解决删除操作期间发生的死锁问题,在开始之前,我们先简单描述一下什么是死锁以及什么东西会导致死锁. 死锁 在任何数据库中发生死锁都是不愉快的,即使是 ...
- 并发访问oracle数据库的数据死锁分析和解决措施,解决Oracle数据库死锁
[IT168 技术文档] 介绍 本文我们尝试总结在多个用户并发情况下,如何识别和解决删除操作期间发生的死锁问题,在开始之前,我们先简单描述一下什么是死锁以及什么东西会导致死锁. 死锁 在任何数据库中发 ...
最新文章
- PHP开发中,让var_dump调试函数输出更美观 ^_^#
- 震撼三观:从细胞到宇宙
- Matlab中数组元素引用——三种方法
- windows下的sysprep
- JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归
- 触发键盘_雷蛇这款光轴机械键盘开箱评测,光速触发,颜值爆表
- 批处理管理文件以及文件夹
- C语言 链式栈和顺序栈的实现
- python统计句子中单词个数_【python统计单词数量】作文写作问答 - 归教作文网
- 开始开发HoloLens应用吧 Start Developing HoloLens Apps Today
- @excel 注解_SpringBoot中关于Excel的导入和导出
- 最新python爬取喜马拉雅音频_Python爬虫实战案例之爬取喜马拉雅音频数据详解
- FPGA、MCU(stm3251)驱动VGA显示器_电阻分压法硬件设计_VGA电阻网络分压
- 实战智能推荐系统(12)-- 标签推荐系统
- CSS:使用媒体查询进行网页元素的缩放
- 个人陈述 计算机专业,研究生个人陈述范例,计算机专业
- 【DirectX学习笔记】01_D3D初始化准备-基本绘图概念
- 这个对老爸老妈有好处
- 好评率超高的9个公众号,值得收藏
- 2021最新! Springboot 2.X集成ElasticSearch 7.6.2(入门版)