假设我正在使用以下名为 TestTable 的 SQL 表:
Date Value1 Value2 Value3 ... Name
2013/01/01 1 4 7 Name1
2013/01/14 6 10 8 Name1
2013/02/23 10 32 9 Name1
而且我想获得日期之间的值的增量,例如:
Value1Inc Value2Inc Value3Inc Name
4 22 1 Name1
2013/02/23
和之间2013/01/14
。
请注意,这些值总是递增的。我正在尝试在 StackOverflow 中找到以下方法:
select (
(select value1 from TestTable where date < '2013/01/14') -
(select value1 from TestTable where date < '2013/02/23')
) as Value1Inc,
(select value2 from TestTable where date < '2013/01/14') -
(select value2 from TestTable where date < '2013/02/23')
as Value2Inc
...
等等,但这种方法给了我一个巨大的疑问。
我想使用 MAX 和 MIN SQL 函数来简化查询,但我不知道该怎么做,因为我不是 SQL 大师(至少:-)。
请大家帮我看看好吗?
编辑:Ups,我认为我自己通过在查询末尾添加“GROUP BY Name”找到了解决方案,如下所示:
select name,max(value1) - min(value1) from TestTable where date < '2013-02-23' and date > '2013-01-01' GROUP BY Name
就是这样!