mysql 查询 category = ‘焊缝’ 相邻值之间img_frame_id 差值
时间: 2024-10-25 15:17:59 浏览: 11
MySql版本问题sql_mode=only_full_group_by的完美解决方案
在MySQL中,如果想查询`category = '焊缝'`的记录,并计算相邻`img_frame_id`之间的差值,你可以使用窗口函数`LAG()`和`LEAD()`。假设你想获得每个`img_frame_id`的当前值与其前一个和后一个值的差,可以这样做:
```sql
WITH cte AS (
SELECT *,
LAG(img_frame_id) OVER (PARTITION BY category_abbreviation ORDER BY img_frame_id) AS prev_img,
LEAD(img_frame_id) OVER (PARTITION BY category_abbreviation ORDER BY img_frame_id) AS next_img
FROM your_table
WHERE category = '焊缝'
)
SELECT img_frame_id,
COALESCE(next_img - img_frame_id, 0) AS diff_to_next,
COALESCE(img_frame_id - prev_img, 0) AS diff_to_prev
FROM cte;
```
在这个查询中,`cte`是一个名为`cte`的临时结果集,其中包含每行的`img_frame_id`以及其前一和后一行的`img_frame_id`。然后我们从`cte`中选择并计算了两个相邻值之间的差值。
阅读全文