【发布时间】:2018-04-23 09:18:10
【问题描述】:
我正在尝试从我的数据库中计算数据,但首先我注意到我得到的结果中有奇怪的行为,其次,我在提出考虑到重新填充的请求时遇到了问题。
我有一张桌子: 名称 - 日期时间 - 内容
我想按天对行进行分组并选择数字的差异来进行消费。 例如:
Name - DateTime - Content
Foo - 22-04-2018 6:00 - 120
Foo - 22-04-2018 10:00 - 119
Foo - 22-04-2018 16:00 - 118
内容减少了,结果应该是-2。 我的请求的输出 = -2
另一个例子:
Name - DateTime - Content
Foo - 23-04-2018 6:00 - 50
Foo - 23-04-2018 10:00 - 90
Foo - 23-04-2018 16:00 - 120
在这里我们可以注意到这个数字有所增加。这意味着我们没有消费,而是补充了储备,内容增加了。 结果应该是-70。 我的请求输出:30
我的要求:
SELECT day,
Abs(Sum(diffn)) AS totN
FROM (SELECT Date(datetime) AS day,
Max(content) - Min(content) AS diffN
FROM logs
WHERE NAME = 'Foo'
AND datetime >= '2018-04-22 00:00:00'
AND datetime <= '2018-04-23 00:00:00'
GROUP BY Date(datetime)) a
GROUP BY day;
但是对于第二个示例,结果是 30 而不是 70,我不知道为什么... 我希望您能帮助我更改我的请求并考虑重新填充,以便我得到我想要的结果。
谢谢!
【问题讨论】:
-
你在用什么
mysql或oracle??请只标记一个。 -
我编辑了,对不起
-
请编辑您的问题并向我们展示清晰的输入和输出。