好吧,我陷入了需要在多个行之间分配值的问题。由于我不知道具体术语,因此我将以下面的示例形式进行介绍,以便更好地理解:
假设x的值为20,我需要按降序将其分配/减去到行中。
桌子:
ID Value1
1 6
2 5
3 4
4 3
5 9
结果应类似于:(x = 20)
ID Value1 Answer
1 6 14
2 5 9
3 4 5
4 3 2
5 9 0
谁能给我一个主意,我该怎么做?
以不同的方式考虑这个问题也许更容易。您要计算的总和,value1
然后从中减去该值@X
。如果差异为负,则输入0
。
如果您使用的是SQL Server 2012,则您具有内置的累计总和。您可以这样做:
select id, value1,
(case when @X - cumvalue1 < 0 then 0 else @X - cumvalue1 end) as answer
from (select id, value1,
sum(value1) over (order by id) as cumvalue1
from table t
) t;
如果您没有累积总和,则可以使用子查询来代替:
select id, value1,
(case when @X - cumvalue1 < 0 then 0 else @X - cumvalue1 end) as answer
from (select id, value1,
(select sum(value1)
from table t2
where t2.id <= t.id
) as cumvalue1
from table t
) t;
问题内容: 我在两个不同的表中有价格,想将它们相减(当前价格-当天价格)并以DESC形式订购它们。我想知道是否可以使用单个MySQL命令来完成。 表结构 问题答案: 除了我使用LEFT JOIN的方式外,此查询没有什么特别的。我相信,如果无法提供昨天的记录价格,则最后三列将包含NULL。输出:
问题内容: 我正在尝试提出一个将更新的MySQL查询…我可以做这样的事情吗? 问题答案: 通过将单引号放在“点-5”周围,可以将该表达式转换为纯文本字符串。不用引号就可以使MySQL看到您正在引用一个字段(点),并从其当前值中减去5。
我有一个流入数据库,里面充满了值。这些值由Grafana提供。我需要的是根据选定的时间间隔获取实际值。 目前,我对单个指标有以下查询: 我想要的是从这个区间中减去最小的值,所以它只计算这个区间内的值。因此,图表需要从零开始。要从该间隔中获取最低值,我使用: 所以我认为像这样结合这两个(和子查询)应该可以: 不幸的是,这不起作用。该查询不被接受为子查询。
我试着让用户输入一个数字,然后再输入一个数字,告诉程序要做多少次基本的数学运算。我得到了工作的加法和乘法,但我不确定如何得到减法,以减去一个数字本身由用户选择的次数。
问题内容: 我有两个对象: 我怎么能在几分钟内发现它们之间的不同? 问题答案: 使用或,如api所述 0 0
问题内容: 我正在从SQL数据库中提取日期,该日期将其视为从午夜开始的日期。当我开始使用它们时,它会正确格式化它们,但是不会浪费一天。 格式化之前: 格式化后: 代码: 问题答案: 如果您分段运行代码,则会注意到产生的输出类似(我的计算机现在处于EDT中)。 这是因为(doc): 假定时区的差异 给定日期字符串为“ 2014年3月7日”,parse()假定为本地时区,但是给定ISO格式(如“ 20