You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL查询:找出用户12345之后修改Type的文件ID

解决方案

要筛选出用户12345操作之后Type字段发生修改的文件ID,可通过以下Oracle SQL语句实现:

WITH user_12345_last_operation AS (
    SELECT 
        ID,
        MAX(Version) AS last_version,
        Type AS original_type
    FROM 
        your_table_name
    WHERE 
        UserId = 12345
    GROUP BY 
        ID, Type
)
SELECT DISTINCT t.ID
FROM 
    your_table_name t
INNER JOIN 
    user_12345_last_operation u 
    ON t.ID = u.ID
WHERE 
    t.Version > u.last_version
    AND t.Type != u.original_type
    AND t.Type IN ('type2', 'type3');

逻辑说明

  1. CTE子查询:user_12345_last_operation 分组获取每个文件ID被用户12345操作的最后版本号,以及该版本对应的Type值。
  2. 主查询关联:将原表与CTE结果关联,筛选出满足以下条件的记录:
    • 版本号晚于用户12345最后操作的版本
    • Type值与12345操作时的Type不同
    • Type值为指定的type2或type3
  3. 去重处理:用DISTINCT确保每个符合条件的文件ID仅返回一次。

示例验证

针对提供的示例数据表:

  • 文件ID 111111:12345最后操作版本为2,Type是type1;后续版本3的Type为type2,符合条件,被返回。
  • 文件ID 222222:12345最后操作版本为1,Type是type1;后续版本2的Type为type3,符合条件,被返回。
  • 文件ID 333333:无后续操作记录,不会被返回。

最终结果与预期一致,返回111111和222222。

内容的提问来源于stack exchange,提问作者A.Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:35:19