【问题标题】:Is there a way to get percentage for earch field有没有办法获得每个字段的百分比
【发布时间】:2019-12-23 07:01:58
【问题描述】:

我需要每个状态的百分比

Select NAME, STATUS, Count(*) From DATA 

group by NAME, STATUS
order by NAME

【问题讨论】:

    标签: sql oracle-apex oracle-apex-5.1


    【解决方案1】:

    您需要为不带状态的计数创建子查询,然后您需要明智地获取用户百分比,您可以在下面尝试:

    Select f1.NAME, f1.STATUS, Count(*),CONCAT((Count(*)*100)/(select Count(*) from data f2 where NAME=f1.Name group by f2.NAME),'%') From DATA f1
    
    group by f1.NAME, f1.STATUS
    order by f1.NAME
    

    或者如果你有用户ID,那么它是更好的查询和完美的结果

    Select f1.NAME, f1.STATUS, Count(*),CONCAT((Count(*)*100)/(select Count(*) from data f2 where UserId=f1.UserId group by f2.UserId),'%') From DATA f1
    
    group by f1.UserId,f1.NAME, f1.STATUS
    order by f1.NAME
    

    【讨论】:

    • 谢谢 Dhaval,但我的桌子有不止 1 个名字
    • 我有更改代码,您需要在子查询中传递名称,如果您有用户 ID,则传入 where 条件。
    • Dhaval,这行得通,你能帮我最后如何舍入和添加 % 符号
    • 您可以像这样添加 %。在sql中使用concat函数。我在答案中添加了代码
    【解决方案2】:

    我认为您在百分比计算中使用了以下公式, count(row first count)*100/所有计数行的总和,即448*100/1560=28.71。 所以,亲爱的,我请求您提及您的问题中的所有问题。

    试试下面的查询并享受它。

     Select NAME, STATUS, Count(*),
         Count(*)*100/(select sum(CT) from (select NAME, STATUS, Count(*) CT from data group by NAME, STATUS))PERCENTAGE
         From DATA 
           group by NAME, STATUS
            order by NAME
    

    【讨论】:

    • 谢谢,但我的表有多个名称。
    【解决方案3】:

    这是获取百分比的方法。首先是得到count()的总数,然后乘以1.0,将结果转换为decimal格式。

    select name, status, count(1) 
        ,  ((count(1) * 1.0)
            /(select count(1) from data)) * 100 as percentage
    from data
    group by name, status
    order by name
    

    【讨论】:

      【解决方案4】:

      勾选此项,使用 SUM 计算总数,然后使用 group by 对名称进行分组

      SELECT name, status, COUNT(status)/(
          SELECT COUNT(status) 
          FROM data
      )*100
      FROM percentage
      GROUP BY name, status
      ORDER BY name
      

      【讨论】:

      • 我认为这个查询没有正常工作,在另一个组函数中使用了一个组函数,例如 AVG、COUNT、MAX、MIN、SUM、STDDEV 或 VARIANCE,如 MAX(COUNT (*)),没有相应的 GROUP BY 子句。添加 GROUP BY 子句或删除额外的嵌套级别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      相关资源
      最近更新 更多