我的数据在teradata中看起来像这样
| 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 |
| 14 | 123456 | 00:20:00 | 00:20:00 | ABC | XYZ |
| 14 | 123456 | 00:20:00 | 00:20:30 | ABC | XYZ |
| 19 | 234567 | 00:20:00 | 00:20:00 | ABC | XYZ |
| 19 | 234567 | 00:20:00 | 00:20:30 | ABC | XYZ |
如何构造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 |
| 19 | 234567 | 00:20:00 | 00:20:00 | ABC | XYZ |
| 19 | 234567 | 00:20:00 | 00:20:30 | ABC | XYZ |
基本上每个领域都会匹配除了 id
以及 load_number
. 因此,假设除这两个字段外,每个字段都匹配,我可以通过取较高的行来删除“重复项”吗 load_number
. 这些数据在不同的方面可能有所不同 region
以及 network
列,以及 load_number
也可能不同。
我在想什么降序()的方法 load_number
或者在除 id
以及 load_number
,然后取最高负载号,任何帮助都非常感谢!
1条答案
按热度按时间6ojccjat1#
如果我理解正确,你可以用
row_number()
以及qualify
: