我正在尝试在新列中TCCIN旁边显示NameofState的前一天记录
例如
我可以在下面的查询中尝试添加或减少州名,但是它不能正常工作,我需要采用其他方法
CASE
WHEN nv < 0 THEN TCCIN
ELSE nv
END AS Delta
FROM (SELECT *,
TCCIN - (SELECT TCCIN
FROM corona t1
WHERE t1.id < t2.id
AND t1.NameofState = t2.NameofState
ORDER BY id DESC
limit 1)nv
FROM corona t2) t
(SELECT TCCIN FROM corona WHERE NameofState=NameofState and Date = SUBDATE(Date, INTERVAL 1 DAY)) FROM corona
注意:我已经发布了这个答案一次,大概是因为它只有一个简短的句子和一个链接,所以被mod删除了。我已对答案进行了修改,但仍被删除。如果我的原始帖子未删除,则将其删除。
这是答案,OP已经接受了它:
您只需要在子查询中考虑日期即可。您真的很接近,看看我用您的示例设置的sql小提琴:http : //sqlfiddle.com/#!9/5ee775/2/0
编辑:帖子已删除,因此添加了更多详细信息。
在op的帖子中,他没有按日期对子查询进行排序,所需要做的只是额外的排序,并且条件会选择最大的日期。
这是有效的修改后的查询:
SELECT *,
(
SELECT TCCIN
FROM corona t1
WHERE t1.id < t2.id
AND t1.NameofState=t2.NameofState
AND t1.Date < t2.DateTime #get max date
ORDER BY Date desc
LIMIT 1
) AS prevDate
FROM corona t2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句