首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回预期比率为0的Sql

问返回预期比率为0的Sql
EN

Stack Overflow用户
提问于 2017-10-10 15:15:43
回答 1查看 288关注 0票数 0

作为SQL查询的一部分

代码语言:javascript
复制
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

结果是

代码语言:javascript
复制
strTransID  SatTr   AllTr   RatioOfGoodAccounts
307319906   6       12        0 

如果我选择没有组和数学的列,这就是结果集。

代码语言:javascript
复制
  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

我想可能是空白处搞砸了,但我尝试了合并,但它并没有影响结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-10 15:22:39

您的命名符和分母都是整数,因此您正在执行整数除法,这只剩下“整体”部分,即本例中的0。

可以使用浮点除法,方法是将指定符显式转换为浮点数类型。或者更简单,因为不管怎么说,你都是在乘数字文字,所以只需使用浮点文字。但是,请注意,必须在除法之前,而不是在除法之后使用:

代码语言:javascript
复制
(SUM(isSatisfactory) * 100.0  / COUNT(AllTrades.AllTradeIndex) ) AS RatioOf
-- Here ---------------^
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46670293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档