sql - 在计算列中选择顶行
问题描述
我需要从具有一行的另一个表中减去具有多条记录的表中的第一行。一张表有一个日期的资产,另一张表有多个按较早日期分组的资产。我还将结果限制在新资产大于 40% 或小于 40% 旧资产的时间。
我已经尝试使用 row_number 函数从第二个表中提取第一行,但是子查询遇到了问题。
Select
p.pid, e.coname, p.seq, p.valmo, p.valyr, p.assets,
(case
when ((p.assets-p1.assets)/p.assets) * 100 <= -40
or ((p.assets-p1.assets)/p.assets) * 100 >=40
and p.assets <> p1.assets
then ((p.assets - p1.assets) / p.assets) * 100
end) as "PercentDiff"
from
pen_plans p
join
pen_plans_archive p1 on p.pid = p1.pid and p.seq = p1.seq
join
entities e on p.pid = e.pid
where
p.assets > 500000 and e.mmd = 'A'
order by
VALYR desc
所以我需要从“pen_plans”中的资产中减去“pen_plans_archive”中的第一行。我试图在子查询中将这样的东西组合到上面:
select assets from (select assets row_number() over (partition by assets
order by valyr DESC) as R
from pen_plans_archive) RS
where R=1 order by valyr DESC
“资产”列定义为 Number(12,0)。
我希望查询生成列、PID、CONAME、SEQ、VALMO、VALYR、ASSETS 和计算的列 PERCENTDIFF,没有空值。
第一个查询产生空值,并且从 pen_plans 中减去 pen_plans_archive 中的每个资产数字,这不是我需要的。
解决方案
您只是想执行 Top 功能吗?
Select TOP 1 <column>
推荐阅读
- python - X-ticks 与 Matplotlib 重叠
- python - 为什么即使我已将文件保存在我的计算机上,我也会在 Python 中获得 FileNotFound?
- excel - 根据条件从列表中删除重复项
- dart - Flutter:测试是否抛出了特定的异常
- javascript - 显示带条件的引导警报(Vue.js):如何访问此变量以更改其值?
- java - 如何设置 EditText 线的粗细?
- json - 如何在嵌套的json中找到最小值的键?
- react-native-navigation - 如何使用 react-native-siri-shortcut 设置 react-native-navigation(rootView 问题)
- ms-access - 无法为具有多个条件的 DCount 获取正确的语法
- r - 创建包含总计 100 行的数据框