gpt4 book ai didi

mysql - 使用 MySQL Group By 查询查找组中第二个项目的 ID

转载 作者:行者123 更新时间:2023-11-29 17:50:19 25 4
gpt4 key购买 nike

我们正在执行一个简单的分组查询,以查找插入到数据库表中的下一组项目的重复添加。

    SET @old_set_id = 71, @new_set_id = 72;

SELECT id,
request_id,
data_capture_id as temp_id,
count(data_capture_id ) as item_count
FROM my_table
WHERE request_id= @old_set_id or request_id= @new_set_id
GROUP BY data_capture_id

将产生一个类似的表格,

  id   request_id   temp_id   item_count
----------------------------------------
3 71 2324345 1
4 71 6786867 2
8 72 5276345 1

对于所有重复项,我们需要组中第二项的 id,即重复记录 6786867 的 72 的 id 是多少?目前显示的是第一组的id。

最佳答案

尝试从这个查询开始:

select 
t1.id,
t1.record_col_1,
t2.request_id,
count(t1.data_capture_id) as item_count
from (
select id, request_id, data_capture_id, record_col_1
from my_table
order by request_id limit 123456789
) t1
inner join (
select request_id, record_col_1
from my_table
order by request_id limit 123456789
) t2 ON t2.record_col_1 = t1.record_col_1 and t2.request_id > t.request_id
group by t1.record_col_1
having item_count > 1

我们的第一个子查询确保数据在分组之前按 request_id 排序。我们有这个垃圾限制123456789,因为默认情况下MySQL会忽略子查询中的排序(除非我们使用这个hacky限制)。我们还有另一个带有排序数据的子查询,以便从具有相同 record_col_1 的集合中获取更高的 request_id。最后,我们按 record_col_1 折叠数据并仅过滤重复项。

我不确定它是否有效,但请尝试一下。

关于mysql - 使用 MySQL Group By 查询查找组中第二个项目的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49421295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com