【发布时间】:2023-01-17 17:04:29
【问题描述】:
我有一个包含订单簿信息的 Oracle SQL 数据库,例如
| ORDER_ID | TIMESTAMP | OPERATION | ORDER_STATUS | ... |
|---|---|---|---|---|
| 1 | 00:00:01 | INSERT | New | ... |
| 1 | 00:00:05 | UPDATE | Partially Filled | ... |
| 2 | 00:00:07 | UPDATE | Partially Filled | ... |
| 1 | 00:00:08 | CANCEL | Filled | ... |
| 3 | 00:00:08 | INSERT | NEW | ... |
现在,此数据并不总是完美填充,因为有时会有缺少信息的 order_ids。
我试图确定的一个这样的问题是缺少操作“插入”的订单(因此,所有具有相同 order_ID 的订单),例如有些 order_ids 具有操作“更新”或“取消”,但没有“插入”。在上面的示例表中,order_id 2 就是这种情况(它有一个“更新”,但没有“插入”)
我能够通过仅下载整个数据集并使用 Python 分析数据来执行此分析,但如果可能的话,我希望能够通过直接 SQL 查询(更快)执行此操作。
【问题讨论】:
-
使用
where not exists