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

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

相关文章
|
7月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
588 0
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
396 6
|
12月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
746 14
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
1301 15
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
304 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
417 8
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
3237 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
411 4
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
545 3