计算表格中列的结果百分比

时间:2018-04-28 16:02:46

标签: sql

我正在使用SQL开发人员,并且有一个名为table1的表,看起来像这样(但加载了更多数据):

item_id    seller_id    warranty   postage_class
-------    ---------    --------   -------------
14         2            1          2
17         6            1          1
14         2            1          1
14         2            1          2
14         2            1          1
14         2            1          2

我想确定头等舱发送的物品百分比。

如果有人能帮助我,那就太棒了!

1 个答案:

答案 0 :(得分:2)

您可以使用条件聚合。最简单的方法可能是:

select avg(case when postage_class = 1 then 1.0 else 0 end)
from t;

请注意,这会计算0到1之间的比率。如果您想要"百分比"介于0和100之间,然后使用100.0而不是1.0。

有些数据库可以进一步缩短这一点。例如,在Postgres中,你可以这样做:

select avg( (postage_class = 1)::int ) 
from t;