gpt4 book ai didi

java - 删除sql数据库中的重复行

转载 作者:行者123 更新时间:2023-12-01 17:19:13 26 4
gpt4 key购买 nike

我有一个包含以下字段的表:

`contract`, `title`, `category`, `reglementation`, `company`, `role`, `start_date`, `end_date`, `creation_date`, `update_date`, `created_by`, `updated_by`,`context`,`hash`,`accept_schedule`,`need_timecard`

并且,我需要删除具有相同契约(Contract)且 end_date 为 null 的行,但 start_date 的值较小

此查询返回重复行,它返回 9000

select contract, count(*) 
from n_h_associate_occupation o
where end_date is null
group by o.contract
having count(*) > 1;

有没有办法删除这些行?请帮忙

最佳答案

这是一个适用于所有版本的 MySQL 的选项:

SELECT o1.*
FROM n_h_associate_occupation o1
INNER JOIN
(
SELECT contract, MIN(start_date) AS min_start_date
FROM n_h_associate_occupation
WHERE end_date IS NULL
GROUP BY contract
) o2
ON o1.contract = o2.contract AND
o1.start_date = o2.min_start_date
WHERE
o1.end_date IS NULL;

这假设您希望保留具有最小开始日期的行(如果给定契约(Contract)有多行)。

关于java - 删除sql数据库中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61327702/

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