gpt4 book ai didi

mysql - 查找连续两个月数据之间的差异

转载 作者:行者123 更新时间:2023-11-29 12:26:38 25 4
gpt4 key购买 nike

我有一个表 - Month_score ,其中包含以下列 -

1.Month
2.year
3.start_date -这是每个月的第一个日期记录分数。
4.score。

包含数据的表格将类似于

'一月'  '2012 年' '2012-01-02'  '35'
'2 月'  '2012 年' '2012-01-02'  '65'
'3 月'  '2012 年' '2012-01-02'  '55'
'4 月'  '2012 年' '2012-01-02'  '35'
'5月'  '2012年' '2012-01-02'  '55'
'6 月'  '2012 年' '2012-01-02'  '25'
'7 月'  '2012 年' '2012-01-02'  '85'
'8 月'  '2012 年' '2012-01-02'  '105'
'9 月'  '2012 年' '2012-01-02'  '95'
'10 月'  '2012 年' '2012-01-02'  '45'
'11 月'  '2012 年' '2012-01-02'  '85'
'12 月'  '2012 年' '2012-01-02'  '25'
'一月'  '2013' '2012-01-02'  '65'
"
"

"
最多

'Dec'  '2014' '2012-01-02'  '35'

我需要创建一个 View 来提取两个连续分数之间的差异,例如

'一月'  '2012' '2012-01-02'  '35'  '35'
'2 月'  '2012 年' '2012-01-02'  '65'  '30'
'3 月'  '2012 年' '2012-01-02'  '55'  '-10'

虽然我可以在一年内做到这一点,但当年份发生变化时,问题就会出现。

最佳答案

假设 start_date 确实是每个月的第一个日期,您可以使用自连接:

select t.*, t.score - tprev.score
from table t left join
table tprev
on year(t.start_date) * 12 + month(t.start_date) =
year(tprev.start_date) * 12 + month(tprev.start_date) + 1;

您可以对月份名称执行类似的操作,但逻辑要复杂得多。

关于mysql - 查找连续两个月数据之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com