gpt4 book ai didi

mysql - 在SQL中获取以前的记录列值

转载 作者:行者123 更新时间:2023-11-29 04:20:05 24 4
gpt4 key购买 nike

我有一个包含 3 列的表:日期、姓名、薪水

我想查询表并在结果集中添加另一个可以有 2 个值的计算列:'new' 和 'same'。

赋值规则是:按日期升序排列记录。如果当前记录的名称与先前记录的名称不同,则新列值将为“开始”,否则(如果相同)它将为“相同”。

我该怎么做?是否有函数(类似 prevRow() 的东西)?还是我必须做一个“把戏”?

我如何在 mysql 和 DB2 中执行此操作?

最佳答案

看来 DB2(至少 9.7 之后的版本)支持 LAG() 窗口函数,所以这个查询应该可以工作(虽然我还没有能够测试它):

SELECT 
date,
name,
salary
CASE
WHEN lag(name, 1) OVER (ORDER BY date ASC) = name THEN 'same'
ELSE 'start'
END AS calc_col
FROM your_table
ORDER BY date ASC

关于mysql - 在SQL中获取以前的记录列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26860833/

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