我正在使用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
我想确定头等舱发送的物品百分比。
如果有人能帮助我,那就太棒了!
答案 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;