sql - 使用 sql 查询计算值的百分比/重新分区
问题描述
我有下表
类型 | 颜色 | 价值 |
---|---|---|
一个 | 白色的 | 真的 |
乙 | 黑色的 | 错误的 |
C | 黄色 | 真的 |
d | 红色的 | 真的 |
F | 绿色 | 错误的 |
我想用 sql 查询计算值等于 true 的行的百分比,例如,在这里,我们总共有 5 行有 3 个 true ,这使得 60% 的类型的值等于 true ,任何想法请问如何解决这个问题?
解决方案
您可以使用avg()
:
select avg(case when value = 'true' then 1.0 else 0 end) as ratio
from t;
这将返回介于 0 和 1 之间的比率。如果您想要介于 0 和 100 之间的百分比,请使用100.0
而不是1.0
.
推荐阅读
- google-maps - 如何使用谷歌地图 API 获取格式化的英文地址
- matlab - MatLab 中基于问题的公式:集合和子集
- batch-file - 批处理 FOR 循环回显星号
- javascript - ReactJs:从数组创建组件会导致旧道具
- spring-boot - Zipkin 与 Spring Boot 2.2 和 Hoxton Cloud
- javascript - ES6 - 将 HTML 字符串解析为数组
- postgresql - 去插入复合类型数组不支持的类型
- docker - 使用 docker-compose 安装包
- android - USSD响应失败:messege PlatformException(ussd_plugin_ussd_response_failed,USSD_RETURN_FAILURE,null)
- java - 如何从 Firebase Android Query 中的 StartAt 特定位置和 EndAt 特定位置获取值