【问题标题】:How to get percentage of certain value in column with SQL?如何使用 SQL 获取列中某个值的百分比?
【发布时间】:2021-11-12 06:31:59
【问题描述】:

我有一张桌子:

id   value 
a1.  7
a2.  89
a3.  None
a4.  None

我想获取列值中无值的百分比。 I don't need percentages of other values in that column, only None values.怎么办?

【问题讨论】:

    标签: mysql sql presto


    【解决方案1】:
    select sum(value='None')*100/count(*) from a_table
    

    【讨论】:

    • 你不能在 presto 中做 sum(value='None')
    【解决方案2】:

    我建议avg():

    select avg(case when value = 'none' then 1.0 else 0 end) as none_ratio
    from t
    

    【讨论】:

      【解决方案3】:

      你可以使用count_if:

      WITH dataset(id,value) AS ( VALUES ('a1.','7'), ('a2.','89'), ('a3.','None'), ('a4.','None') )
      
      SELECT count_if(value = 'None') * 1.0/count(*)
      FROM dataset
      

      输出:

      _col0
      0.5

      【讨论】:

        猜你喜欢
        • 2021-11-22
        • 2016-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-28
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        相关资源
        最近更新 更多