SQLite 中的分组操作 | 学习笔记

简介: 快速学习 SQLite 中的分组操作

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:SQLite 中的分组操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11230


SQLite 中的分组操作

内容介绍:

一、数据分组 group by

二、过滤分组 having

 

一、数据分组 group by

分组数据,以便能汇总表内容的子集,常和聚集函数搭配使用。例如查询每个班级中的人数、平均分

使用: select 列名1[,列名2,...] from 表名 group by 列名

在终端下输入(先增加一列班名 class):

/目前表内容如下:

sqlite> select*from tbl;

id     name    addr    score

----   --------  -------  ------

101     zs      bj       40

102     ls       tj       40

103     ww     sh      60

104     zs       cd     60

105     sw      cq      90

106      xh      hb     90

/通过 alter 加入一列班名 class

sqlite= alter table tbl add class text;

sqlitea select *from tbl;

id     name    addr    score    class

----   --------  -------  ------

101     zs      bj       40

102     ls       tj       40

103     ww     sh      60

104     zs       cd     60

105     sw      cq      90

106      xh      hb     90

/通过 update 编写班级

sqlite>update tbl set class='class_A' where name='zs ';

sqlite> update tbl set class='class_A' where name='ls ';

sqlite> update tbl set class='class_A' where name='ww ';

sqlite> update tbl set class='class_B' where id=104;

sqlite> update tbl set class='class_B' where id=105;

sqlite> update tbl set class='class_B' where id=106;

sqlitea select *from tbl;

id     name    addr    score    class

----   --------  -------  ------   ----------

101     zs      bj       40      class_A

102     ls       tj       40      class_A

103     ww     sh      60      class_A

104     zs       cd     60      class_B

105     sw      cq      90      class_B

106      xh      hb     90      class_B

编写完班级之后进行分组操作,执行 count()操作

sqlite> select class,count(*) from tbl group by class;

class     count(*)

--------  --------

class_A   3

class_B   3

可以求班级的成绩的均值:

sqlite> select class,avg(score) from tbl group by class;

class      avg( score)

-------    -------------

class_A    46.66666667

class_B    80.0

还可以求其中一个班的平均值,后面要跟上条件,注意,group要在where后面:

sqlite> select class,avg(score) from tbl where class='class_A' group by class;

class      avg( score)

-------    -------------

class_A    46.66666667

除了 group by 分组操作外,还有一种分组——过滤分组

 

二、过滤分组 having

除了能用 group by 分组数据外,还可以包括哪些分组,排除哪些分组。

例如:查看班级平均分大于 90 的班级

通过 having 实现

语法: select 函数名(列名1)[,列名2,...] from 表名 group by 列名 having 函数名限制值

终端输入(查看班级平均分大于90的班级)

sqlite> select class, avg(score) from persons group by classhaving avg(score) >= 90 ;

class_B 95.0

根据表求平均值大于80的班级:

sqlite> select class,avg(score) from tbl group by class having avg(score)>=80;

class      avg ( score)

-------    -------------

class_B    80.0

sqlite> select class,avg(score) from tbl group by class having avg(score)<80;

class      avg( score)

-------    -------------

class_A    46.66666667

函数于分组都是便于我们进行检索,就是增删查改中的查

相关文章
|
4天前
|
SQL 存储 数据挖掘
深入了解SQLite3命令:小巧强大的数据库工具
SQLite3是轻量级数据库工具,适用于嵌入式设备和数据分析。它提供交互式shell,无需服务器,易于部署。常用命令如`.schema`显示表结构,`.mode`设置输出格式。示例包括创建数据库`mydatabase.db`,创建表`users`,插入数据并查询。注意动态类型系统、性能限制及SQL注入安全。适合轻量级数据存储和管理。
|
25天前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
65 2
|
28天前
|
数据库 数据安全/隐私保护 数据库管理
QT中sqlite数据库数据加密/混淆---MD5/SHA1/SHA2/SHA3
QT中sqlite数据库数据加密/混淆---MD5/SHA1/SHA2/SHA3
|
12天前
|
存储 Java Linux
SQLite3数据库的安装与使用教程
SQLite3数据库的安装与使用教程
|
17天前
|
编译器 API 数据库
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
19 0
|
1月前
|
SQL 关系型数据库 数据库
17. Python 数据库操作之MySQL和SQLite实例
17. Python 数据库操作之MySQL和SQLite实例
79 2
|
2月前
|
数据库 数据库管理 关系型数据库
|
1月前
|
SQL 存储 数据库
48. 【Android教程】数据库:SQLite 的使用
48. 【Android教程】数据库:SQLite 的使用
22 1
|
21天前
|
存储 数据库 Android开发
数据库SQLite3总结
数据库SQLite3总结
|
21天前
|
存储 缓存 数据库
Android之SQLite数据库使用详解
Android之SQLite数据库使用详解