计算 2 个不同表的输出之间的除法

Posted

技术标签:

【中文标题】计算 2 个不同表的输出之间的除法【英文标题】:Calculate division between outputs of 2 different tables 【发布时间】:2020-05-22 15:08:51 【问题描述】:

我正在尝试计算废品率。这样我的输出就会给出类似的东西。

Scrap Product Total Count 
-------------------
Product Total Count

我有两张桌子:

Product
--------
Barcode 1
Barcode 2 
Barcode 3
Barcode 4 

废品

Barcode 2
Barcode 4

我一直在尝试使用枢轴运算符进行不同的查询,并在下面进行查询。 实现这一目标的最佳方法是什么?

select (
select count(barcode)
FROM ScrapProduct)
 / 
(
select count(barcode)
FROM Product) as total_count

【问题讨论】:

【参考方案1】:

您的代码基本上没问题。但是你会遇到整数除法的问题。因此,您的数字中需要小数。我发现这是最简单的方法:

select ( (select count(barcode) from ScrapProduct) * 1.0 / 
         (select count(barcode) from Product)
       ) as scrap_rate

如果您想要三列,则将子查询移至from 子句:

select num_scrap, num_product, (num_scrap  * 1.0 / num_product) as scrap_rate 
from (select count(barcode) as num_scrap from ScrapProduct) sp cross join
      (select count(barcode) as num_product from Product) p

【讨论】:

以上是关于计算 2 个不同表的输出之间的除法的主要内容,如果未能解决你的问题,请参考以下文章

java不同数值类型之间除法问题

LeetCode 29 Divide Two Integers (不使用乘法,除法,求模计算两个数的除法)

Python中整数运算除法,输出带浮点数

每日一题「整数除法」

每日一题「整数除法」

有符号和无符号之间的减法,然后是除法