sql - SQL查询从3个不同的行计算一个值
问题描述
col1 col2 cal_val
F 1879 1879
% 25 1409
$ -45 1454
第一行基本上输出第 2 列中的条目第二行基本上会计算第 1 行第 3 列中值的 25%,然后从前一个值中减去该值,即 1879-470 = 1409
我需要能够计算 1454 的最终值(基本上是从第二行输出值中减去)1409 - (-45) 等于 1454
解决方案
您可以使用条件聚合:
select ( (sum(case when col1 = 'F' then col2 end) *
sum(case when col1 = '%' then 1 - col2 / 100.0 end)
) -
sum(case when col1 = '$' then col2 end)
)
from t;
这是一个 db<>fiddle。
推荐阅读
- html - CSS问题:绝对路径不适用于背景图像
- c# - SqlDependency.Start 在 Unity 中不起作用?
- javascript - 如何通过javascript为单选按钮赋予标题
- activerecord - 在 yii2 中查询一个 redis 模型
- html - Top App Bar和Drawer如何结合?
- r - 在 R 中捕获字符向量的“内部切片”
- spring-data-jpa - Spring JPA:当我不知道总页数时,如何获取对象的最后一页
- javascript - 如何创建一个部分以显示博客上特定标签的最新帖子?
- php - 在 Laravel Eloquent 中访问数据透视表“第三模型关系”
- google-app-maker - 从手机编辑应用程序时,如何将小部件拖到页面上?