sql - 如何从postgresql中的总行数中计算不同行数的百分比?
问题描述
我有一个数据库,我必须按订单类型明智地分配订单?
目前我正在使用
(count(CASE WHEN TYPE='DigitalForwardOrder'then 1 end)/count(type))*100,
这里“DigitalForwardOrder”是行中的值之一,列名中的“类型”
解决方案
更简洁的公式使用avg()
:
avg(case when TYPE = 'DigitalForwardOrder' then 100.0 else 0 end)
或者在 Postgres 中更简洁:
avg( (type = 'DigitalForwardOrder')::int ) * 100
推荐阅读
- mysql - mySQL中的简单乘积计算
- c# - 将字符串中出现的枚举值替换为枚举值的索引以进行字符串比较
- r - 在 R 中使用带有分组条形图和 facet_wrap 的 ggsignif 时如何定义数据
- typescript - 即使使用 AdministratorAccess 运行 CDK,S3 访问也被拒绝
- c# - 如何在 C# 中将文本文件中的单词添加到数组列表中
- javascript - 在 React JS 状态下更新输入字段值
- sql - 如何以正确的方式使用模型 - 用 typescript 续集
- javascript - 将搜索结果传递给反应中的另一个页面/组件
- reactjs - 尝试设置坐标时设置状态无法正常工作
- unity3d - Physics.OverlapBox 的错误使用