假设我有一个名为mytable的表,它看起来像这样:
我希望能够更新所有的记录在p6列添加到39但只为行有不同的p2值。换句话说,结果表应该如下所示:
我将p6行着色为黄色,以显示它不应该移动的地方,因为所有的p2单元格都是灰色的,它们的值是相同的。绿色的p6行应该会增长,因为p2也会增长,所以我把+39加到所有的行上。示例中的最后第13行再次为黄色,因为12行上的p2=13行上的p2。
在Gordon Linoff的帮助下,我做了这样的事情:
update mytable join
(select mytable.*,
(lag(p6) over(ORDER BY dt) +
(case when lag(p2) over (order by dt) <> p2 then 39 ELSE 0 end)
) as new_p6
from mytable
) tt
on tt.id = mytable.id
set mytable.p6 = tt.new_p6
where new_p6 <> mytable.p6;
但没有按预期进行更新。你能帮我做吗?
使用数据更新:
id dt p2 p6
3 11.2.2021 15:45 536107.56 0
4 11.2.2021 15:50 536107.56 0
5 11.2.2021 15:55 536107.56 0
6 11.2.2021 16:00 536107.56 0
7 11.2.2021 16:05 536107.56 0
8 11.2.2021 16:10 609103.75 39
9 11.2.2021 16:15 609129.81 78
10 11.2.2021 16:20 609155.94 117
11 11.2.2021 16:25 609181.81 156
12 11.2.2021 16:30 609208.06 195
13 11.2.2021 16:35 609208.06 195
如果您想枚举更改并乘以39,那么您想要的逻辑有些不同:
update mytable join
(select tt.*,
sum(case when p2 <> prev_p2 then 1 else 0 end) over (order by dt) as cnt
from (select tt.*,
lag(p2) over (order by dt) as prev_p2
from mytable tt
) tt
) tt
on tt.id = mytable.id
set mytable.p6 = cnt * 39
where cnt > 0;
假设我有一个表customer(int id,类型varchar,首选项jsonb)。类型可以是、等。根据列类型值,首选项JSON结构将有所不同。 在从数据库加载客户记录时,如果type=regular我希望将其转换为对象类型,如果type=premium我希望将其转换为对象类型。 我已经阅读了几篇关于使用JOOQ JSON转换器/绑定的教程。但是它们是一对一映射,不是基于条件的(取决于另一个列值
问题内容: 假设我有一个表 customer(int id,类型varchar,首选项jsonb) 。的 类型 可以是,基于该列类型值偏好JSON结构将是不同的等等。 从数据库加载客户记录时,如果 type = REGULAR, 我想将其转换为对象类型,如果 type = PREMIUM, 我想将其转换为对象类型。 我已经看过几本有关使用JOOQ JSON转换器/绑定的教程。但是它们是一对一的映射
问题内容: 我有一个名为Vendor的表,在此表中有一个名为AccountTerms的列,该列仅显示一个值(即0、1、2、3),依此类推。我也有一个要使用()的列,以反映该值的含义,例如: 等等… 我需要的是一个脚本,它将查看AccountTerms中的值,然后将更新以显示上面显示的单词值。我该怎么做呢? 问题答案: 我将尝试以一种尽可能简单的方式来解释这一点,以便于理解: 假设您有一个这样的表设
问题内容: 我在尝试制作自己的内容时遇到了麻烦,具体取决于其他方面的选择值。第一个的内容来自我的数据库中的一个表,并且运行良好,但是第二个的内容应该来自另一个表,但是我无法使其工作。这是我的,我只是在尝试证明其工作原理: 这是我的Bean部分,应该获取第二个菜单的内容: 我已经为此工作了好几个小时,但还是一无所获,我真的很着急,如果能在这里给我一些帮助,我将不胜感激。非常感谢您:D 问题答案: i
问题内容: 我想申请我的自定义函数(它使用的梯)这六个列我的数据帧的每一行中)。 我尝试了与其他问题不同的方法,但似乎仍然找不到适合我问题的正确答案。关键在于,如果该人被视为西班牙裔,就不能被视为其他任何人。即使他们在另一个种族栏中的得分为“ 1”,他们仍然被视为西班牙裔,而不是两个或两个以上的种族。同样,如果所有ERI列的总和大于1,则将它们计为两个或多个种族,并且不能计为唯一的种族(西班牙裔除
我正在寻找一种解决方案,使用Jackson基于同一POJO中的其他属性值序列化POJO对象属性 如果某个属性值符合某些条件,则应根据要求更改其他属性值 例如,下面是我的JSON对象: 在上述情况下,如果的值符合某些条件,那么我应该能够更改的值 为什么需要这样做: 是一个配置对象 和-是配置设置 在上面的例子中,中有一个是,我需要屏蔽/更改相应的 还要补充一点,在这个例子中,属性是和,但是如果我们找