mysql 如何在公式/SQL语句中获取前一个值

ruarlubt  于 2024-01-05  发布在  Mysql
关注(0)|答案(1)|浏览(112)

我有3个专栏,本月,上个月,备注
我想获得“上个月”的值,其中该值是同一运营商ID上个月的R因子值。
我有这个月的声明,这个工作很好,但我不能退出最后一个月。
本月公式语句:

SELECT TOP 1 (R_Factor) 
FROM Table_Carrier_Profile 
WHERE Carrier_Profile_ID= target.[@field:Carrier_Profile_ID] 
ORDER BY Date DESC

字符串
x1c 0d1x的数据



本月公式语句:

SELECT TOP 1 (R_Factor) 
FROM Table_Carrier_Profile 
WHERE Carrier_Profile_ID= target.[@field:Carrier_Profile_ID] 
ORDER BY Date DESC


RecordsExpected Result Table
记录
| 列A|色谱柱B|列A|色谱柱B|
| --|--|--|--|
| 公司简介|8Y9NT78U| 2023年1月12日|零点三六七|
| 5R46UC9I| 8Y9NT78U| 2023年1月11日|0.252|
| 97CSSNY8| 8Y9NT78U| 2023年1月10日|0.239|
| ZRQL6ZD6| 8Y9NT78U| 2023年01月09日|零点三零八|
关于R因子值的预期结果表
| 本月|上个月|
| --|--|
| 零点三六七|0.252|

fv2wmkja

fv2wmkja1#

问题还不清楚。问题中的示例SQL基于Carrier_Profile_ID列进行过滤,但似乎显示基于Carrier_ID列的结果。
这种困惑让我对这个答案不太有信心,但有一个可能的选择是使用LAG()窗口函数:

SELECT [This Month], [Last Month]
FROM (
    SELECT Carrier_Profile_ID, R_Factor As [This Month]
        , LAG(R_Factor) OVER (PARTITION BY Carrier_ID ORDER BY [Date]) [Last Month]
    FROM Table_Carrier_Profile 
) t
WHERE t.Carrier_Profile_ID = target.[@field:Carrier_Profile_ID]

字符串
请看这里:
https://dbfiddle.uk/OHMkVEwa

相关问题