mysql聚合查询, 聚合函数
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;