sql - 如何使用sql在postgresql中分组划分
问题描述
数据行:
id status model time
1 F m0 12:00
2 S m0 13:00
3 F m0 14:00
4 S m1 12:00
5 S m1 13:00
6 S m1 14:00
我想按模型获得失败率(状态 = f),结果将是
model fail_rate
m0 2/3
m1 0/3
我们可以只使用 sql 得到结果吗?
提前致谢
解决方案
很容易,使用聚合:
select model,
avg( (status = 'F')::int ) as fail_rate
from t
group by model;
Postgres 可以将布尔表达式转换为数字,“1”表示真,“0”表示假。这些值的平均值就是比率。
推荐阅读
- python-3.x - 给定一个节点,烧掉整棵二叉树需要多长时间?
- java - org.testng.TestNGException:无法实例化黄瓜测试运行器
- php - WooCommerce 存款和购物车总计算
- exception - memcpy() : 访问冲突写入位置
- java - 使用 for 循环从 CacheManger 检索数据的方法的单元测试
- time-complexity - nCr mod 10^9 + 7 对于 n<=10^9 和 r <=1000
- r - 使用 SparkR 将双精度转换为日期
- javascript - 如何将光标聚焦在条纹输入元素上
- c - 无法在我的汇编程序中生成可执行文件(make: *** [makefile:31: HW1.axf] 错误 1)
- javascript - 如果元素在视点中(在可见区域),如何使用 d3.js 检查