首页 > 解决方案 > SQL:检索日期的第一个更新

问题描述

我有一个历史表,我想用它来检索一些数据。该表只有几列:

Country 始终保持不变,但有多个值可以更改,这意味着如果在 2020 年 1 月 1 日 12:00 在科索沃更改多个值,则会创建具有相同日期时间的多行。IE:


我想在我的查询中添加一个附加列,该列返回它对某个数据的更新计数。IE; 12:00 完成的更新是所有行的更新 #1,但之后在 12:30 完成的更新是 2020 年 1 月 1 日科索沃所有行的更新 #2。

我希望这是有道理的,但我无法弄清楚。我可以在行级别进行分区,但这意味着每一行都有自己的编号。我希望同时更新的所有行的数字都相似,所以在 12:00 更新的所有行都得到第 1 行,在 12:30 得到第 2 行。

标签: sqlsql-server

解决方案


这是你想要的吗 ?

select t.*, row_number() over (partition by country order by datechange) as update_no
from table t

推荐阅读