SQLite 数据库 GROUP BY 分组查询基本用法

SQLite 数据库阿木 发布于 2025-07-11 13 次阅读


SQLite 数据库 GROUP BY 分组查询基本用法详解

在处理数据库数据时,分组查询(GROUP BY)是一个非常重要的功能。它允许我们根据特定的字段对数据进行分组,并计算每个组的统计信息。在SQLite数据库中,GROUP BY子句是执行分组查询的关键。本文将详细介绍SQLite数据库中GROUP BY分组的用法,包括基本概念、语法结构、常用函数以及实际应用案例。

一、GROUP BY基本概念

GROUP BY子句用于对查询结果进行分组,通常与聚合函数(如COUNT、SUM、AVG、MAX、MIN等)一起使用。通过GROUP BY,我们可以对数据进行分类,并计算每个分类的统计信息。

1.1 分组依据

GROUP BY子句中的字段称为分组依据,用于指定如何对数据进行分组。例如,如果我们想按性别统计人数,则性别字段就是分组依据。

1.2 聚合函数

聚合函数用于对分组后的数据进行计算,如计算每个分组的数量、平均值、最大值等。常见的聚合函数包括:

- COUNT:计算分组后的记录数。

- SUM:计算分组后的数值总和。

- AVG:计算分组后的平均值。

- MAX:计算分组后的最大值。

- MIN:计算分组后的最小值。

二、GROUP BY语法结构

GROUP BY子句的基本语法如下:

sql

SELECT column1, column2, ...


FROM table_name


WHERE condition


GROUP BY column1, column2, ...


HAVING condition;


2.1 SELECT子句

SELECT子句用于指定查询结果中包含的列。在GROUP BY查询中,可以包含以下几种类型的列:

- 分组依据列:用于指定分组依据的字段。

- 聚合函数列:用于计算每个分组的统计信息。

- 非分组依据列:用于选择非分组依据的列,但必须与聚合函数一起使用。

2.2 FROM子句

FROM子句用于指定查询的表名。

2.3 WHERE子句

WHERE子句用于指定查询条件,筛选出满足条件的记录。

2.4 GROUP BY子句

GROUP BY子句用于指定分组依据的字段。

2.5 HAVING子句

HAVING子句用于对分组后的结果进行筛选,类似于WHERE子句,但只对分组后的结果起作用。

三、GROUP BY常用函数

以下是一些常用的聚合函数:

3.1 COUNT

sql

SELECT COUNT(column_name) FROM table_name;


计算表中记录的总数。

3.2 SUM

sql

SELECT SUM(column_name) FROM table_name;


计算表中指定列的数值总和。

3.3 AVG

sql

SELECT AVG(column_name) FROM table_name;


计算表中指定列的平均值。

3.4 MAX

sql

SELECT MAX(column_name) FROM table_name;


计算表中指定列的最大值。

3.5 MIN

sql

SELECT MIN(column_name) FROM table_name;


计算表中指定列的最小值。

四、GROUP BY实际应用案例

以下是一些GROUP BY查询的实际应用案例:

4.1 按性别统计人数

sql

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


统计users表中不同性别的用户数量。

4.2 按年龄统计平均工资

sql

SELECT age, AVG(salary) FROM employees GROUP BY age;


统计employees表中不同年龄段员工的平均工资。

4.3 按城市统计订单数量

sql

SELECT city, COUNT() FROM orders GROUP BY city;


统计orders表中不同城市的订单数量。

五、总结

GROUP BY子句是SQLite数据库中一个非常有用的功能,可以帮助我们快速、方便地对数据进行分组和统计。相信大家对GROUP BY的用法有了更深入的了解。在实际应用中,灵活运用GROUP BY和聚合函数,可以更好地挖掘数据价值,为决策提供有力支持。

六、扩展阅读

- SQLite官方文档:https://www.sqlite.org/lang_select.html

- 聚合函数详细介绍:https://www.sqlite.org/lang_aggregate.html

通过阅读以上资料,可以进一步了解SQLite数据库的GROUP BY和聚合函数的更多用法。