我的数据结构如下:
Timestamp | Hour | Count
--------------------------
20190801 01 | 1 | 10
20190801 02 | 2 | 20
20190801 03 | 3 | 10
20190801 04 | 4 | 5
20190801 05 | 5 | 15
20190801 06 | 6 | 10
20190802 01 | 1 | 5
20190802 02 | 2 | 20
20190802 03 | 3 | 5
20190802 04 | 4 | 15
20190802 05 | 5 | 20
20190802 06 | 6 | 5
20190803 01 | 1 | 30
我正在尝试进行一个SQL查询,该查询将计算正在运行的SUM,但在小时数为3时将重置。结果应如下所示:
Hour | Count | SUM
------------------
1 | 10 | 10
2 | 20 | 30
3 | 10 | 10 /* RESET */
4 | 5 | 15
5 | 15 | 30
6 | 10 | 40
1 | 5 | 45
2 | 20 | 65
3 | 5 | 5 /* RESET */
4 | 15 | 20
5 | 20 | 40
6 | 5 | 45
1 | 30 | 75
您可以使用条件总和创建子组:
WITH cte AS (
SELECT t.*,SUM(CASE WHEN hour=3 THEN 1 ELSE 0 END) OVER(ORDER BY timestamp) grp
FROM t
)
SELECT cte.*, SUM(Count) OVER(PARTITION BY grp ORDER BY timestamp) AS total
FROM cte
如果相同,下面是一个代码,用于添加金额,并根据创建一个新的
当条件(if)满足时,我尝试将文本着色为绿色或红色。 这是我的函数getAll() 在我的表格中,有一部分我想给文本上色。下面的例子不起作用。 我也试过,但它总是在绿色或红色上着色。 我想做这样的事情:如果有一天,然后颜色文本的红色或绿色。
问题内容: 是否可以在MySQL中执行UPDATE查询,仅在满足特定条件时才更新字段值?像这样: 换一种说法: 正确的方法是什么? 问题答案: 是! 这里有另一个例子: 之所以可行,是因为MySQL不会更新该行(如果没有更改),如docs中所述: 如果将列设置为其当前值,MySQL会注意到这一点,并且不会对其进行更新。
我正在制作一个汽车游戏。只有“开始”、“停止”、“退出”命令。无法识别任何其他命令。 除了“退出”之外,所有命令都可以正常工作。使用while循环,它会执行和打印else语句: 命令=“退出”应该呈现当条件,因此跳过前面只执行外部的其他语句。为什么它执行其他两个语句,甚至认为同时条件不满足?
我正在尝试使用一个do while循环来找出用户是想将一只狗还是一只猫检查到Java的养狗系统中。其思想是,当提示时输入“dog”或“cat”,任何输入都将导致错误,并且他们将再次被提示输入文件名。 如果输入了“cat”或“dog”,那么将为程序分配等效的文件(dogs.txt或cats.txt),然后系统将运行并将数据加载到程序中。 以下是当前的变量: 以及导致问题的方法: 下面是运行代码时打印
我想在java中编写一个函数,该函数接收参数并返回1或0,在以下条件下: > 如果数组的长度是奇数,如果奇数之和大于偶数之和,则返回1,否则返回0。 如果数组的长度是偶数,请检查小于或等于10的最大数字。如果是奇数,则返回1。如果是偶数,则返回0。 例如,使用以下数组: 第一个数组返回 1,因为 = 20 大于 = 14。第二个数组返回 0,因为有 是奇数,但 10 大于 7。 我已经试过了,请检