首页 > 解决方案 > 如何从postgresql中的总行数中计算不同行数的百分比?

问题描述

我有一个数据库,我必须按订单类型明智地分配订单?

目前我正在使用

(count(CASE WHEN TYPE='DigitalForwardOrder'then 1 end)/count(type))*100,

这里“DigitalForwardOrder”是行中的值之一,列名中的“类型”

标签: sqlpostgresql

解决方案


更简洁的公式使用avg()

avg(case when TYPE = 'DigitalForwardOrder' then 100.0 else 0 end)

或者在 Postgres 中更简洁:

avg( (type = 'DigitalForwardOrder')::int ) * 100

推荐阅读