121 lines
3.5 KiB
Plaintext
121 lines
3.5 KiB
Plaintext
|
|
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;
|