繁体   English   中英

如何从mysql的结果中删除十进制数字?

[英]How to remove decimal digit from result in mysql?

我想去掉小数点后的数字怎么解决?

我的查询是:

SELECT city_name,
       Assignedto,
       COUNT(Assignedto) AS TC,
       CONCAT(count(CASE
                        WHEN STATUS = 'CLOSED' THEN 1
                        ELSE NULL
                    END) * 100 / count(1), '%') AS SC,
       CONCAT(count(CASE
                        WHEN STATUS = 'PENDING' THEN 1
                        ELSE NULL
                    END) * 100 / count(1), '%') AS PC,
       SUM(TIMESTAMPDIFF(MINUTE,Request_Date, Xetr))/60 AS WH,
       (154440-sum(TIMESTAMPDIFF(MINUTE,Request_Date, Xetr))/60) AS VH,
       CONCAT(COUNT(Feedback_Rate)/COUNT(Assignedto)*100,'%') AS Feed_Percent,
       SUM(Feedback_Rate)/(count(Feedback_Rate)*5)*5 AS AVG_Feedback
FROM `it_service_ticket`
INNER JOIN `it_problem`ON `it_service_ticket`.`it_problem_id`=`it_problem`.`it_problem_id`
INNER JOIN `city_master` ON `it_service_ticket`.cityid=`city_master`.city_id
WHERE `it_service_ticket`.`xetr` BETWEEN '2016-04-01 12:00:00 AM' AND '2017-02-28 12:00:00 PM'
GROUP BY Assignedto
ORDER BY city_name ASC;           

输出

+-------------------------+-------------------------+-------+------------+----------+------------+--------------+-----------+---------+
|       City_Name         |       AssigneeTo        |  TC   |    SC      |   PC     |    WH      |     VH       | Feedback  | Average |
+-------------------------+-------------------------+-------+------------+----------+------------+--------------+-----------+---------+
| Ahmedabad               | mahesh.patel@corp.in  |  297  | 100.0000%  | 0.0000%  |  147.0667  | 154292.9333  | 43.4343%  |  4.4031 |

| 艾哈迈达巴德 | mahesh.patel@corp.in | 第297话 100.0000% | 0.0000% | 147.0667 | 154292.9333 | 43.4343% | 4.4031 |

  1. 如果要舍入小数位,请使用ROUND(yourColumn,0)函数。

    所以13.78会变成14

  2. 如果你想去掉小数位,用户FLOOR(yourColumn)

    所以13.78会变成13

所以例如

SUM(TIMESTAMPDIFF(MINUTE,Request_Date, Xetr))/60 AS WH

应该改为

ROUND(SUM(TIMESTAMPDIFF(MINUTE,Request_Date, Xetr))/60,0) AS WH

编辑:这会照顾你的%

CONCAT(
        ROUND(count(CASE
            WHEN STATUS = 'PENDING' THEN 1
            ELSE NULL
        END) * 100 / count(1),0)
        , '%') AS PC

对需要删除小数位的所有列执行相同操作。

例如,您应该在 Mysql 中使用 TRUNCATE()

SELECT TRUNCATE(525.668545, 3) -- 525.668

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM