mysql求百分比输出零_mysql 百分比 除数为0解决方案 TRUNCATE取两位小数 concat拼接...

该篇博客介绍了在MySQL中如何处理求百分比时遇到除数为0的情况,提出了解决方案。通过使用CASE语句结合TRUNCATE函数来确保当除数为0时返回特定值,并且百分比结果保留两位小数。同时,内容涉及到多表联查和数据统计。
摘要由CSDN通过智能技术生成

SELECT

cin.custom_name customName,

(

SELECT

COUNT(1)

FROM

user_info ui,

user_customer_info uci

WHERE

ui. STATUS = 1

AND ui.id = uci.user_no

AND uci.custom_id = cin.id

) userCount,

CASE (

SELECT

count(1)

FROM

user_info ui,

user_customer_info uci,

customer_info cin,

customer_service_info csi

WHERE

ui. STATUS = 1

AND cin.show_status = 1

AND csi.custom_id = cin.id

AND uci.custom_id = csi.custom_id

AND ui.id = uci.user_no

AND csi.service_id = 2

)

WHEN 0 THEN

concat(

TRUNCATE (

(

SELECT

COUNT(1)

FROM

user_info ui,

user_customer_info uci

WHERE

ui. STATUS = 1

AND ui.id = uci.user_no

AND uci.custom_id = cin.id

) / 1 * 100,

2

),

'%'

)

ELSE

concat(

TRUNCATE (

(

SELECT

COUNT(1)

FROM

user_info ui,

user_customer_info uci

WHERE

ui. STATUS = 1

AND ui.id = uci.user_no

AND uci.custom_id = cin.id

) / (

SELECT

count(1)

FROM

user_info ui,

user_customer_info uci,

customer_info cin,

customer_service_info csi

WHERE

ui. STATUS = 1

AND cin.show_status = 1

AND csi.custom_id = cin.id

AND uci.custom_id = csi.custom_id

AND ui.id = uci.user_no

AND csi.service_id = 2

) * 100,

2

),

'%'

)

END percentage

FROM

customer_info cin,

customer_service_info csi

WHERE

cin.show_status = 1

AND csi.custom_id = cin.id

AND csi.service_id = 2

ORDER BY

userCount DESC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值