admin 管理员组

文章数量: 887021


2024年3月1日发(作者:oracle11g安装不满足最低要求)

mysql group by having 和select用法

MySQL中的GROUP BY和HAVING可以结合使用来筛选数据。

GROUP BY是用于根据指定的列对结果进行分组。例如,将一个表按照某个列的值进行分组:

```

SELECT column1, COUNT(*)

FROM table

GROUP BY column1;

```

这个查询将根据column1列的值对结果进行分组,并计算每个分组中的行数。

HAVING是用于筛选分组后的结果。它与WHERE子句相似,但是只能用于分组后的结果中。

例如,对分组后的结果进行筛选,只显示行数大于2的分组:

```

SELECT column1, COUNT(*)

FROM table

GROUP BY column1

HAVING COUNT(*) > 2;

```

这个查询将先根据column1列的值对结果进行分组,然后筛选出行数大于2的分组。

注意,HAVING子句必须跟在GROUP BY子句之后,而且可以使用GROUP BY中定义的列,也可以使用聚合函数。

同时,SELECT子句中可以使用的列有两种:一种是GROUP

BY中定义的列,一种是聚合函数。聚合函数的结果可以在HAVING子句中使用。

例如,使用聚合函数MAX()和HAVING筛选出最大值大于10的分组:

```

SELECT column1, MAX(column2)

FROM table

GROUP BY column1

HAVING MAX(column2) > 10;

```

这个查询将根据column1列的值对结果进行分组,然后筛选出最大值大于10的分组。


本文标签: 分组 结果 进行 筛选