sql - SQL:检索日期的第一个更新
问题描述
我有一个历史表,我想用它来检索一些数据。该表只有几列:
- 国家
- 问题ID
- 日期变更
- 旧值
- 新价值
Country 始终保持不变,但有多个值可以更改,这意味着如果在 2020 年 1 月 1 日 12:00 在科索沃更改多个值,则会创建具有相同日期时间的多行。IE:
- 科索沃
- 123
- 2020-01-01 12:00
- 100名员工
- 101名员工
- 科索沃
- 234
- 2020-01-01 12:00
- 14 英亩
- 15 英亩
我想在我的查询中添加一个附加列,该列返回它对某个数据的更新计数。IE; 12:00 完成的更新是所有行的更新 #1,但之后在 12:30 完成的更新是 2020 年 1 月 1 日科索沃所有行的更新 #2。
我希望这是有道理的,但我无法弄清楚。我可以在行级别进行分区,但这意味着每一行都有自己的编号。我希望同时更新的所有行的数字都相似,所以在 12:00 更新的所有行都得到第 1 行,在 12:30 得到第 2 行。
解决方案
这是你想要的吗 ?
select t.*, row_number() over (partition by country order by datechange) as update_no
from table t
推荐阅读
- elasticsearch - 如何从logstash中的时间戳中获取日期?
- swift - Swift:如何构建嵌套评论和回复功能,如 instagram
- php - 使用 Ldap 活动目录的 Laravel 身份验证
- c++ - g++11 : 摆脱成员 'A:: 的缺失初始化程序
' - android - 在android上设置udp连接
- asp.net-core - 这就是 web app + web api + external IdP + 授权的工作方式吗?
- javascript - 通过innerHTML中的id获取元素
- c# - 如何从 Razor 页面的过滤器调用先前请求的已保存请求处理程序?
- python - 如何在 django 请求中获取 csv 文件?
- python - 将天的 timedelta 转换为年