我有下表laundry
:
item | wash1 | wash2
abc1 | A | B
abc1 | B | C
abc1 | C | D
abc2 | A | E
abc2 | E | F
其中wash1和wash2为dates
。
我想将每个商品ID的Wash2日期减少一天,以使最后一次出现的Wash2日期与该ID保持相同。
item | wash1 | wash2
abc1 | A | B-1
abc1 | B | C-1
abc1 | C | D
abc2 | A | E-1
abc2 | E | F
答案 0 :(得分:1)
Hive解决方案:
insert overwrite table laundry
select
item, wash1,
case when rn=1 then wash2
else date_sub(wash2,1)
end wash2
from
(
select item, wash1, wash2,
row_number() over(partition by item order by wash2 desc) rn --latest=1
from laundry
)s;
答案 1 :(得分:0)
在MYSQL DBMS中,使用以下简单代码:
SELECT DATE_SUB("2017-06-15", INTERVAL 1 DAY);
在第一部分中设置您的专栏,例如:
SELECT DATE_SUB(wash2, INTERVAL 1 DAY)
from laundry
Where wash2 <> MAX(wash2);
此功能在SQL Server中不起作用