【问题标题】:SQL query group where one column is missing specific data一列缺少特定数据的 SQL 查询组
【发布时间】: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

标签: sql oracle


【解决方案1】:

查看以下内容是否有帮助:

Select Order_Id
from t
where Operation in ('UPDATE','CANCEL')
and not exists (
  select * from t t2
  where t2.Order_Id = t.Order_Id and t2.Operation = 'INSERT'
);

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多