Mysql篇:MySQL distinct 与 group by 去重(where/having)
warning:
这篇文章距离上次修改已过448天,其中的内容可能已经有所变动。
在MySQL中,DISTINCT和GROUP BY经常被用来去除查询结果中的重复行。DISTINCT用于返回唯一不同的值,而GROUP BY用于将相同的值分组在一起。
当你想要去重时,可以使用DISTINCT关键字,例如:
SELECT DISTINCT column_name FROM table_name;如果你想要根据某一列的值进行去重,并且计算其他列的统计数据,可以使用GROUP BY,例如:
SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;在这个例子中,column1是分组依据,COUNT(column2)是对column2的统计函数。
如果你想要结合使用DISTINCT和GROUP BY去除重复行并进行统计,可以这样写:
SELECT DISTINCT column1, COUNT(column2) FROM table_name GROUP BY column1;在这个例子中,column1是去重依据,COUNT(column2)是对column2的统计函数。
另外,WHERE和HAVING也常用于去重条件过滤,WHERE是行级过滤,HAVING是组级过滤。例如:
SELECT column1, COUNT(column2) FROM table_name WHERE column3 = 'some_value' GROUP BY column1;
SELECT column1, COUNT(column2) FROM table_name GROUP BY column1 HAVING COUNT(column2) > 1;第一个查询中,WHERE column3 = 'some_value'用于在分组前过滤数据。第二个查询中,HAVING COUNT(column2) > 1用于在分组后过滤数据。
评论已关闭