首页  > 数据库 > mysql聚合查询, 聚合函数

mysql聚合查询, 聚合函数

数据库 2024-12-26 4

MySQL中的聚合查询是指对表中的数据进行分组,并对每个组进行核算,然后得到每个组的核算数据。聚合查询一般与聚合函数一同运用,如SUM, AVG, MAX, MIN, COUNT等。下面我将经过一个示例来解说怎么进行MySQL聚合查询。

假定咱们有一个名为`students`的表,其间包括以下字段:

`id`: 学生ID `name`: 学生名字 `age`: 学生年纪 `grade`: 学生年级

咱们想要核算每个年级的平均年纪。这能够经过以下SQL查询来完成:

```sqlSELECT grade, AVG AS average_ageFROM studentsGROUP BY grade;```

在这个查询中,咱们首要挑选了`grade`和`age`字段,然后运用`AVG`函数核算每个年级的平均年纪。`GROUP BY`子句用于指定按哪个字段进行分组,在这个比如中是`grade`字段。

假如你有任何详细的问题或需求进一步的解说,请告诉我!

MySQL 聚合查询详解

聚合函数

1. COUNT()

计数函数 COUNT()

`COUNT()` 函数用于核算查询成果会集指定列的非空值的数量。假如未指定列名,则核算一切行的数量。

```sql

SELECT COUNT(column_name) FROM table_name;

示例:核算学生表中男生的数量。

```sql

SELECT COUNT() FROM students WHERE gender = '男';

2. SUM()

求和函数 SUM()

`SUM()` 函数用于核算查询成果会集指定列的数值总和。

```sql

SELECT SUM(column_name) FROM table_name;

示例:核算学生表中一切学生的总分。

```sql

SELECT SUM(score) FROM students;

3. AVG()

平均值函数 AVG()

`AVG()` 函数用于核算查询成果会集指定列的平均值。

```sql

SELECT AVG(column_name) FROM table_name;

示例:核算学生表中一切学生的平均分。

```sql

SELECT AVG(score) FROM students;

4. MAX() 和 MIN()

最大值和最小值函数 MAX() 和 MIN()

`MAX()` 函数用于获取查询成果会集指定列的最大值,而 `MIN()` 函数则用于获取最小值。

```sql

SELECT MAX(column_name), MIN(column_name) FROM table_name;

示例:获取学生表中最高分和最低分。

```sql

SELECT MAX(score), MIN(score) FROM students;

分组查询

1. GROUP BY 子句

GROUP BY 子句

`GROUP BY` 子句用于对查询成果集进行分组,以便对每个分组使用聚合函数。

```sql

SELECT column_name, aggregate_function(column_name) FROM table_name GROUP BY column_name;

示例:按性别分组核算学生数量。

```sql

SELECT gender, COUNT() FROM students GROUP BY gender;

2. HAVING 子句

HAVING 子句

`HAVING` 子句用于对分组后的成果集进行挑选,类似于 `WHERE` 子句。

```sql

SELECT column_name, aggregate_function(column_name) FROM table_name GROUP BY column_name HAVING condition;

示例:核算每个性别中平均分超越 80 分的学生数量。

```sql

SELECT gender, COUNT() FROM students GROUP BY gender HAVING AVG(score) > 80;

分页查询

1. LIMIT 子句

LIMIT 子句

`LIMIT` 子句用于约束查询成果集的回来行数。

```sql

SELECT column_name FROM table_name LIMIT offset, row_count;

示例:获取学生表中前 10 名学生的信息。

```sql

SELECT FROM students LIMIT 0, 10;

2. 分页查询示例

假定咱们要完成分页查询,每页显现 5 条数据。

```sql

-- 第一页

SELECT FROM students LIMIT 0, 5;

-- 第二页

SELECT FROM students LIMIT 5, 5;

-- 第三页

SELECT FROM students LIMIT 10, 5;


Copyright © 2016-2028零基础教程 Rights Reserved. XML地图