我有一个用于辩论赛的数据库,我正在尝试排行榜,以查看哪些学校将在学期末进入决赛。

我的工作如下所示,但是我无法对ptc字段进行四舍五入,它目前最多返回4个小数位,例如0.6667(如果他们赢得了3个辩论中的2个)。

    SELECT   t.id,
             t.name                  AS name,
             SUM(t.id  = d.winnerid) AS w,
             SUM(t.id != d.winnerid) AS l,
             SUM(t.id  = d.winnerid)/(SUM(t.id  = d.winnerid)+SUM(t.id != d.winnerid)) AS ptc
    FROM     debates AS d
        JOIN teams   AS t ON t.id IN (d.hostid, d.visitid)
    WHERE    d.visitid != -1
         AND d.debatedate < CURDATE()
    GROUP BY t.id
    ORDER BY ptc DESC

我相信我必须在这里使用小数(2,2),但是我无法正确使用某些语法,例如
SUM(t.id  = d.winnerid)/(SUM(t.id  = d.winnerid)+SUM(t.id != d.winnerid)) AS ptc decimal (2,2)

很高兴在需要时提供有关表的更多信息,但我认为这不是必需的吗?

最佳答案

试试这个。

SELECT ROUND(SUM(cash), 2)
FROM <tablename>

如果没有结果,则必须有一个空值,请尝试执行此操作。
SELECT ROUND(SUM(cash), 2)
FROM<tablename> a
WHERE cash IS NOT NULL

这是一个简单的演示:

更新:
 SELECT round( ROUND(SUM(p.prod_price = l.prod_unit_price), 2)
/ROUND(SUM(p.prod_id = l.prod_id), 2),2)
FROM b2b.product_master p
join b2b.move_cart_item_master l;

关于mysql - 在SQL中设置总和的小数位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20812835/

10-12 14:17
查看更多