【问题标题】:how to get percentage in stored procedure如何在存储过程中获取百分比
【发布时间】:2016-10-19 11:12:14
【问题描述】:

我有一个存储过程,我通过它的计数来获取类别的存在。我想要它的总百分比。样本是我的总值。我需要样本中是或否的百分比。请帮忙。我的存储过程如下。

BEGIN

SELECT 

    SC.name as SC,
    SUM(IF(is_category_present = 1, 1, 0)) as YES,
    SUM(IF(is_category_present = 0, 1, 0)) as NO,
    COUNT(OC.outlet_id) as SAMPLE

FROM outlet_categories OC
INNER JOIN outlets O on O.id = OC.outlet_id
INNER JOIN sale_channels SC on SC.id = O.sale_channel_id

WHERE OC.month = month
AND CASE WHEN location_type = 1 THEN OC.zone_id = location
         WHEN location_type = 2 THEN OC.state_id = location
         WHEN location_type = 3 THEN OC.city_id = location

    END
AND OC.category_id = category_id

GROUP BY SC.id;

END

【问题讨论】:

    标签: mysql database stored-procedures


    【解决方案1】:

    简单的计算应该可以工作:

    (SUM(IF(is_category_present = 1, 1, 0))*1.0) / COUNT(OC.outlet_id) * 100.0 AS perc_yes
    (SUM(IF(is_category_present = 0, 1, 0))*1.0) / COUNT(OC.outlet_id) * 100.0 AS perc_no
    

    【讨论】:

    • 将其转换为 varchar,使用 CONCAT 并添加 % 符号。
    • 那么样品呢,样品应该显示 100% 。表示是或否的总和?你也可以在查询中添加它吗
    • 我想要它的带有百分比的四舍五入值。请编辑您的答案以获得更多许可
    • 自己尝试一些东西并实际查看文档或至少尝试搜索如何?我已经给了你关键字来做到这一点。
    猜你喜欢
    • 2017-12-27
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2020-10-28
    • 2021-11-28
    • 1970-01-01
    相关资源
    最近更新 更多