sql - SQL Server:从第一行减去最后一行
问题描述
我有一个返回很多行的查询。我需要最后一行和第一行中的值之间的差异。TimeCol
是一DateTime
列,所有其他列的类型都是float
.
我当前的(简化的)查询是这样的:
select
timeCol, TotSoap_W1, TotSoap_W2, TotEnergy
from
TotEnergy
where
TimeCol >= '2019-03-01 00:00:00' and timeCol < '2019-03-02 00:00:00'
order by
TimeCol asc
解决方案
这可能不是最好的方法,但应该完成这项工作:
SELECT B.TotSoap_W1-A.TotSoap_W1 as TotSoap_W1, B.TotSoap_W2-A.TotSoap_W2 as TotSoap_W2, B.TotEnergy-A.TotEnergy as TotEnergy
FROM
(select TOP(1) timeCol, TotSoap_W1, TotSoap_W2, TotEnergy
from TotEnergy
where TimeCol >= '2019-03-01 00:00:00' and timeCol < '2019-03-02 00:00:00'
order by TimeCol ASC) A,
(select TOP(1) timeCol, TotSoap_W1, TotSoap_W2, TotEnergy
from TotEnergy
where TimeCol >= '2019-03-01 00:00:00' and timeCol < '2019-03-02 00:00:00'
order by TimeCol DESC
) B
推荐阅读
- rust - 如何从`FnMut`闭包中返回捕获的变量,它同时是一个捕获者
- c++ - 无法绘制存储在向量中的 sf::RectangleShape (俄罗斯方块克隆)
- r - 尝试在 ifelse 语句中使用 Merge 两次
- excel - 将文本框从 PowerPoint 复制到 Excel
- c - 从链表中删除第一个节点并返回它而不分配或释放内存。(C 编程)
- d3.js - 无法将动画添加到 d3js 中的堆叠条形图?
- flutter - 如何在颤动中删除 pubspec.yaml 中指定的资产?
- python - 将数据帧的索引传递给函数
- keras - 将 tf.keras.layers 与 keras.model 一起使用
- javascript - 如何在反应图标文件悬停时删除标签?