WITH RECURSIVE seq AS ( SELECT SN, MIN(itemCurrentCycles) AS current_cycle, MAX(itemCurrentCycles) AS max_cycle FROM TestReq WHERE SN = '543009862' -- 加入 SN 条件 AND startTime > '2025-02-18 18:00:00' -- 加入 startTime 条件 GROUP BY SN UNION ALL SELECT SN, current_cycle + 1, max_cycle FROM seq WHERE current_cycle < max_cycle ) SELECT s.SN, s.current_cycle AS missing_cycle FROM seq s LEFT JOIN TestReq t ON s.SN = t.SN AND s.current_cycle = t.itemCurrentCycles AND t.startTime > '2025-02-18 18:00:00' -- 在 JOIN 中加入 startTime 条件 WHERE t.itemCurrentCycles IS NULL AND s.SN = '543009862'; -- 在最终结果中过滤 SN 获取指定SN的各个字段的最小值和最大值 SELECT MIN(stationDropCycles) as min_stationDropCycles, MAX(stationDropCycles) as max_stationDropCycles, MIN(itemCurrentCycles) as min_itemCurrentCycles, MAX(itemCurrentCycles) as max_itemCurrentCycles, MIN(dropCycles) as min_dropCycles, MAX(dropCycles) as max_dropCycles FROM TestReq WHERE SN = '指定SN值'; 获取指定SN在特定时间范围内的各个字段的最小值和最大值 SELECT MIN(stationDropCycles) as min_stationDropCycles, MAX(stationDropCycles) as max_stationDropCycles, MIN(itemCurrentCycles) as min_itemCurrentCycles, MAX(itemCurrentCycles) as max_itemCurrentCycles, MIN(dropCycles) as min_dropCycles, MAX(dropCycles) as max_dropCycles FROM TestReq WHERE SN = '指定SN值' AND startTime >= '2025-02-26 19:29:45' AND endTime <= '2025-02-26 19:29:47'; 检查 itemCurrentCycles stationDropCycles dropCycles 字段的连续性并找出缺失值 WITH RECURSIVE params AS ( SELECT '202401032245180707' AS target_sn, '2025-02-26 19:29:45' AS range_start, '2026-02-26 19:29:47' AS range_end, 'itemCurrentCycles' AS cycle_field_name -- 可选的字段名:dropCycles, itemCurrentCycles, stationDropCycles ), min_max AS ( SELECT MIN( CASE params.cycle_field_name WHEN 'dropCycles' THEN TestReq.dropCycles WHEN 'itemCurrentCycles' THEN TestReq.itemCurrentCycles WHEN 'stationDropCycles' THEN TestReq.stationDropCycles ELSE NULL END ) AS min_cycle, MAX( CASE params.cycle_field_name WHEN 'dropCycles' THEN TestReq.dropCycles WHEN 'itemCurrentCycles' THEN TestReq.itemCurrentCycles WHEN 'stationDropCycles' THEN TestReq.stationDropCycles ELSE NULL END ) AS max_cycle FROM TestReq, params WHERE SN = params.target_sn AND startTime >= params.range_start AND endTime <= params.range_end ), numbers(n) AS ( SELECT min_cycle FROM min_max UNION ALL SELECT n + 1 FROM numbers, min_max WHERE n < min_max.max_cycle ) SELECT n AS missing_value, (SELECT min_cycle FROM min_max) AS min_cycle, (SELECT max_cycle FROM min_max) AS max_cycle, (SELECT cycle_field_name FROM params) AS field_name FROM numbers WHERE n NOT IN ( SELECT CASE params.cycle_field_name WHEN 'dropCycles' THEN TestReq.dropCycles WHEN 'itemCurrentCycles' THEN TestReq.itemCurrentCycles WHEN 'stationDropCycles' THEN TestReq.stationDropCycles ELSE NULL END FROM TestReq, params WHERE SN = params.target_sn AND startTime >= params.range_start AND endTime <= params.range_end ) ORDER BY n; ) ORDER BY n;