作为SQL查询的一部分
SELECT
TransID,
SUM(isSatisfactory) as SatTr,
count(AllTrades.AllTradeIndex) as AllTr,
(SUM(isSatisfactory) / count(AllTrades.AllTradeIndex) ) * 100 as RatioOf
FROM
...Several subqueries here...
GROUP BY TransID结果是
strTransID SatTr AllTr RatioOfGoodAccounts
307319906 6 12 0 如果我选择没有组和数学的列,这就是结果集。
strTransID isSatisfactory AllTradeIndex
307319906 NULL 1334036
307319906 NULL 1334037
307319906 NULL 1334038
307319906 NULL 1334039
307319906 NULL 1334040
307319906 1 1334041
307319906 NULL 1334042
307319906 1 1334043
307319906 1 1334044
307319906 1 1334045
307319906 1 1334046
307319906 1 1334047我想可能是空白处搞砸了,但我尝试了合并,但它并没有影响结果。
发布于 2017-10-10 15:22:39
您的命名符和分母都是整数,因此您正在执行整数除法,这只剩下“整体”部分,即本例中的0。
可以使用浮点除法,方法是将指定符显式转换为浮点数类型。或者更简单,因为不管怎么说,你都是在乘数字文字,所以只需使用浮点文字。但是,请注意,必须在除法之前,而不是在除法之后使用:
(SUM(isSatisfactory) * 100.0 / COUNT(AllTrades.AllTradeIndex) ) AS RatioOf
-- Here ---------------^https://stackoverflow.com/questions/46670293
复制相似问题