原创

Mysql 数据库表中实现删除重复数据

1. GROUP BY

GROUP BY 是分组查询, 一般GROUP BY是和聚合函数配合使用。

2、Having

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。

3、数据库表中实现删除重复数据,此操作每执行一次删除一条最新Id值,具体代码如下:

DELETE
FROM
	tb_user
WHERE
	id IN (
		SELECT
			id
		FROM
			(
				SELECT
					max(id) AS id,
					count(userId) AS count
				FROM
					tb_user
				GROUP BY
					userId
				HAVING
					count > 1
				ORDER BY
					count DESC
			) AS tab
	)

聚合函数的组合使用,具体如下:

SELECT
	COUNT(id) AS num_id,
	MAX(SAL) AS max_sal,
	Min(AGE) AS min_age,
	SUM(SAL) / COUNT(SAL) AS avg_sal,
	AVG(DISTINCT SAL) AS disavg_sal
FROM
	USER


常用的聚合函数包含如下:

求和函数——SUM()

计数函数——COUNT()

最大/最小值函数—MAX()/MIN()

均值函数——AVG()

~阅读全文~人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

您可能感兴趣的文章

评论

分享:

支付宝

微信