mysql
单条数据查询
DELETE
FROM
`dev_run_log`
WHERE
log_id IN (
select t.log_id from
(SELECT
log_id
FROM
`dev_run_log`
GROUP BY
log_id
HAVING
Count( * ) >2
) t)
AND id NOT IN (
select m.id from
(SELECT
min(id) as id
FROM
`dev_run_log`
GROUP BY
log_id
HAVING
count(log_id ) > 2) m
)
多条数据查询
DELETE
FROM
dev_run_log
WHERE
(node,node_name,end_time) IN (
select node,node_name,end_time from
(SELECT
node,node_name,end_time
FROM
dev_run_log
GROUP BY
node,node_name,end_time
HAVING
Count( * ) >2
) t)
AND id NOT IN (
select m.id from
(SELECT
min(id) as id
FROM
dev_run_log
GROUP BY
node,node_name,end_time
HAVING
count(*) > 2) m
)
sqlserver:
with with1 as (
SELECT node,node_name,end_time FROM kettle_dev_run_log GROUP BY node,node_name,end_time HAVING Count() >1),—查找重复的语句
with2 as(SELECT min(id) as id FROM kettle_dev_run_log GROUP BY node,node_name,start_time,end_time HAVING count() > 1)—查找重复语句的最大ID
delete kettle_dev_run_log from kettle_dev_run_log a,with1 b ,with2 c where a.node=b.node and a.node_name=b.node_name and a.end_time=b.end_time and a.id != c.id