简体   繁体   English

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

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

I want to remove digit after decimal how to solve it?我想去掉小数点后的数字怎么解决?

My query is:我的查询是:

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;           

Output输出

+-------------------------+-------------------------+-------+------------+----------+------------+--------------+-----------+---------+
|       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 |

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

  1. If you want to round off decimal places, use ROUND(yourColumn,0) function.如果要舍入小数位,请使用ROUND(yourColumn,0)函数。

    So 13.78 will become 14所以13.78会变成14

  2. If you want to get rid of decimal places, user FLOOR(yourColumn)如果你想去掉小数位,用户FLOOR(yourColumn)

    So 13.78 will become 13所以13.78会变成13

So for example所以例如

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

should be changed to应该改为

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

Edit: This would take care of your % .编辑:这会照顾你的%

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

Do the same for all the columns you need to remove decimal places.对需要删除小数位的所有列执行相同操作。

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

SELECT TRUNCATE(525.668545, 3) -- 525.668

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

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