sql - 通过获取最新数据加载删除重复值
问题描述
我正在处理看起来像这样的企业数据。
| load_number | id | time | slot_time | region | network |
|-------------|-----------|----------|-----------|--------|---------|
| 1692 | 641131146 | 00:20:00 | 00:20:00 | FX-4 | SBOB |
| 1692 | 641131146 | 00:20:00 | 00:20:30 | FX-4 | SBOB |
| 1442 | 570732257 | 00:20:00 | 00:20:00 | FX-4 | SBOB |
| 1442 | 570732257 | 00:20:00 | 00:20:30 | FX-4 | SBOB |
| 1692 | 641131147 | 00:55:00 | 00:55:00 | FX-4 | SBOB |
| 1692 | 641131147 | 00:55:00 | 00:55:30 | FX-4 | SBOB |
| 1442 | 570732258 | 00:55:00 | 00:55:00 | FX-4 | SBOB |
| 1442 | 570732258 | 00:55:00 | 00:55:30 | FX-4 | SBOB |
问题是该公司有不良的数据实践和更改/重用 ID,但只更新该load_number
字段。
如何构造我的 sql 查询以提取最新加载的数据,如下所示:
| load_number | id | time | slot_time | region | network |
|-------------|-----------|----------|-----------|--------|---------|
| 1692 | 641131146 | 00:20:00 | 00:20:00 | FX-4 | SBOB |
| 1692 | 641131146 | 00:20:00 | 00:20:30 | FX-4 | SBOB |
| 1692 | 641131147 | 00:55:00 | 00:55:00 | FX-4 | SBOB |
| 1692 | 641131147 | 00:55:00 | 00:55:30 | FX-4 | SBOB |
基本上每个字段都会匹配,除了id
和load_number
。因此,鉴于除了这两个字段之外的每个字段都匹配,我可以通过采用更高的行来删除“重复项” load_number
。
我正在考虑某种下降rank()
,load_number
非常感谢任何帮助!
解决方案
尝试这样的事情
with max_load_numbers_by_id AS (
SELECT et.id, MAX(et.load_number) AS max_load_number
FROM enterprise_table et
GROUP BY et.id
)
SELECT et.*
FROM enterprise_table et
JOIN max_load_numbers_by_id mlnbi
ON et.id = mlnbi.id
AND et.max_load_number = mlnbi.load_number
推荐阅读
- salesforce - 触发器发送的电子邮件模板中的 Marketing Cloud Email Studio AmpScript
- ruby-on-rails - 使用或不使用双引号分割逗号分隔的字符串
- swift - 访问非原始类型枚举案例值?
- swift - Value of type 'AppDelegate' has no member 'Window' swift
- python - 在图像 Python 中裁剪自定义区域
- arrays - TypeError:this.state.PostsAtt.map 不是函数 - ReactJS
- angular - 角度材料:如何测试是否调用了 dialog.open()
- python-3.x - 如何在 Google Colab 中使用 GUI?
- php - 如何从 API 资源中获取 Json 数组并在 laravel 中使用 Jquery ajax 将其绑定到刀片文件中?
- python-3.x - 如何在请求期货中使用“继续”?