文章目录
- 前言
- 一、GROUP BY、HAVING是什么
- 二、编写SQL
- 1.查询重复数据
- 2.删除SQL
- 总结
前言
浅浅记录一下,工作问题。
今天在库中看到存在很多重复数据,本文将介绍怎么通过SQL语句批量删除重复数据的一种方式。
一、GROUP BY、HAVING是什么
我们先来了解一下GROUP BY,HAVING。
GROUP BY是SQL语言中的一种聚合函数。从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”;它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。在SQL中,GROUP BY是SELECT语句的可选子句,用于根据一个或多个字段对查询结果进行分组,它减少了结果集中的行数。
HAVING通常用在SQL语句中,与GROUP BY子句一起使用,对分组的结果进行过滤。如果将WHERE关键字用于在聚合运算前过滤分组的话,那么HAVING关键字则用于在聚合运算后过滤分组。
简而言之,ROUP BY用于按照一个或多个字段对查询结果进行分组,HAVING则是对分组之后的数据进行再次过滤
二、编写SQL
1.查询重复数据
代码如下(示例):
SELECT MIN( a.task_id ) id
FROM
PLMS_T_D_TaskExecuteLog a
GROUP BY
a.car_desc,
a.direction,
a.distance,
a.log_begin_time,
a.log_desc,
a.log_status,
a.mai_subName,
a.person_str,
a.weather
HAVING
COUNT ( * ) > 1
2.删除SQL
代码如下(示例):文章来源:https://uudwc.com/A/aYgdG
DELETE
FROM
TaskExecuteLog
WHERE
task_id IN (
SELECT MIN( a.task_id ) id
FROM
PLMS_T_D_TaskExecuteLog a
GROUP BY
a.car_desc,
a.direction,
a.distance,
a.log_begin_time,
a.log_desc,
a.log_status,
a.mai_subName,
a.person_str,
a.weather
HAVING
COUNT ( * ) > 1)
总结
以上就我通过SQL批量删除数据的语句,在此欢迎各位同行分享其他方式。文章来源地址https://uudwc.com/A/aYgdG