【SQL】掌握SQL查询技巧:数据分组与排序

目录
  • 1. GROUP BY
    • 1.1 定义与用途
    • 1.2 示例说明
    • 1.3 注意事项
    • 1.4 可视化示例
  • 2. ORDER BY
    • 2.1 定义与用途
    • 2.2 升序说明(默认)
    • 2.3 降序排序
    • 2.4 多列排序
    • 2.5 可视化示例
  • 3. GROUP BY 与 ORDER BY 的结合使用
  • 4. 可视化示例
  • 总结

在数据库管理中,SQL(结构化查询语言)是一个强大的工具,它允许用户从数据库中提取和操作数据。对数据的有效处理通常需要进行分组和排序操作。在这篇博客中,我们将深入讨论 SQL 中的 GROUP BYORDER BY 子句,帮助你更好地理解如何使用这些功能来组织和排序你的数据。

1. GROUP BY

1.1 定义与用途

GROUP BY 子句用于将来自 SELECT 查询的数据行分组,通常与聚合函数(如 COUNTSUMAVGMAXMIN)一起使用,以便对每个组执行计算。这种分组使我们能够对数据进行汇总分析,提取有用的信息。

1.2 示例说明

假设我们有一个名为 sales 的表,其中包含以下数据:

id

product

quantity

price

sale_date

1

Apple

10

1.00

2024-01-01

2

Banana

20

0.50

2024-01-02

3

Apple

15

1.00

2024-01-03

4

Banana

25

0.50

2024-01-04

5

Cherry

30

2.00

2024-01-05

现在,如果我们想要统计每种水果的总销售数量,可以使用如下 SQL 查询:

SELECT product, SUM(quantity) AS total_quantity
FROM sales
GROUP BY product;

解释

  • SELECT product:选择产品名称。
  • SUM(quantity) AS total_quantity:对每种产品的销售数量求和,并命名为 total_quantity
  • FROM sales:指定数据源表。
  • GROUP BY product:按 product 列对结果进行分组。

输出结果

product

total_quantity

Apple

25

Banana

45

Cherry

30

1.3 注意事项

  • 非聚合字段:当使用 GROUP BY 时,SELECT 子句中的所有非聚合列必须在 GROUP BY 子句中列出,否则会导致错误。

    -- 错误示例:无法只返回 product 列而不 GROUP BY price
    SELECT product, price, SUM(quantity)
    FROM sales
    GROUP BY product; -- 会导致错误
    
  • NULL 值处理:在进行分组时,NULL 值会被视为同一组。

1.4 可视化示例

通过以下可视化图示,可以更直观地理解 GROUP BY 的工作原理。

#mermaid-svg-kHXD6REa28VRgscy {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kHXD6REa28VRgscy .error-icon{fill:#552222;}#mermaid-svg-kHXD6REa28VRgscy .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kHXD6REa28VRgscy .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kHXD6REa28VRgscy .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kHXD6REa28VRgscy .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kHXD6REa28VRgscy .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kHXD6REa28VRgscy .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kHXD6REa28VRgscy .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kHXD6REa28VRgscy .marker.cross{stroke:#333333;}#mermaid-svg-kHXD6REa28VRgscy svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kHXD6REa28VRgscy .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-kHXD6REa28VRgscy .cluster-label text{fill:#333;}#mermaid-svg-kHXD6REa28VRgscy .cluster-label span{color:#333;}#mermaid-svg-kHXD6REa28VRgscy .label text,#mermaid-svg-kHXD6REa28VRgscy span{fill:#333;color:#333;}#mermaid-svg-kHXD6REa28VRgscy .node rect,#mermaid-svg-kHXD6REa28VRgscy .node circle,#mermaid-svg-kHXD6REa28VRgscy .node ellipse,#mermaid-svg-kHXD6REa28VRgscy .node polygon,#mermaid-svg-kHXD6REa28VRgscy .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kHXD6REa28VRgscy .node .label{text-align:center;}#mermaid-svg-kHXD6REa28VRgscy .node.clickable{cursor:pointer;}#mermaid-svg-kHXD6REa28VRgscy .arrowheadPath{fill:#333333;}#mermaid-svg-kHXD6REa28VRgscy .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-kHXD6REa28VRgscy .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-kHXD6REa28VRgscy .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-kHXD6REa28VRgscy .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-kHXD6REa28VRgscy .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-kHXD6REa28VRgscy .cluster text{fill:#333;}#mermaid-svg-kHXD6REa28VRgscy .cluster span{color:#333;}#mermaid-svg-kHXD6REa28VRgscy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-kHXD6REa28VRgscy :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}#mermaid-svg-kHXD6REa28VRgscy .watermark>*{fill:#fff!important;stroke:none!important;font-size:15px!important;opacity:0.8!important;}#mermaid-svg-kHXD6REa28VRgscy .watermark span{fill:#fff!important;stroke:none!important;font-size:15px!important;opacity:0.8!important;}

Group By: Product

Sum Quantities

CSDN @ 2136

Sales Table

Grouped Data

Aggregated Results

CSDN @ 2136

  • Sales Table:原始数据表,包含所有销售记录。
  • Grouped Data:通过 GROUP BY 将数据按产品分组。
  • Aggregated Results:应用聚合函数(如 SUM),计算每种产品的总销售数量。

2. ORDER BY

2.1 定义与用途

ORDER BY 子句用于对查询结果进行排序。默认情况下,排序是升序的,但可以使用 DESC 关键字指定降序排序。这有助于用户根据特定的需求查看数据。

2.2 升序说明(默认)

继续使用上述 sales 表,假设我们想按销售日期对销售记录进行排序,可以使用如下 SQL 查询:

SELECT *
FROM sales
ORDER BY sale_date ASC;

解释

  • SELECT *:选择所有列。
  • FROM sales:指定数据源表。
  • ORDER BY sale_date ASC:按 sale_date 列升序排序。

输出结果

id

product

quantity

price

sale_date

1

Apple

10

1.00

2024-01-01

2

Banana

20

0.50

2024-01-02

3

Apple

15

1.00

2024-01-03

4

Banana

25

0.50

2024-01-04

5

Cherry

30

2.00

2024-01-05

2.3 降序排序

如果想按销售数量降序排序,可以使用:

SELECT *
FROM sales
ORDER BY quantity DESC;

解释

  • ORDER BY quantity DESC:按 quantity 列降序排序。

输出结果

id

product

quantity

price

sale_date

5

Cherry

30

2.00

2024-01-05

4

Banana

25

0.50

2024-01-04

3

Apple

15

1.00

2024-01-03

2

Banana

20

0.50

2024-01-02

1

Apple

10

1.00

2024-01-01

2.4 多列排序

你可以使用多个列进行排序。例如,首先按产品名称升序,然后按销售数量降序:

SELECT *
FROM sales
ORDER BY product ASC, quantity DESC;

解释

  • ORDER BY product ASC, quantity DESC:按 product 列升序,若有相同的产品再按 quantity 降序排序。

输出结果示例

id

product

quantity

price

sale_date

1

Apple

10

1.00

2024-01-01

3

Apple

15

1.00

2024-01-03

2

Banana

20

0.50

2024-01-02

4

Banana

25

0.50

2024-01-04

5

Cherry

30

2.00

2024-01-05

2.5 可视化示例

通过以下可视化图示,可以更直观地理解 ORDER BY 的工作原理。

#mermaid-svg-2JukF3Z6iaQynXho {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2JukF3Z6iaQynXho .error-icon{fill:#552222;}#mermaid-svg-2JukF3Z6iaQynXho .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-2JukF3Z6iaQynXho .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-2JukF3Z6iaQynXho .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-2JukF3Z6iaQynXho .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-2JukF3Z6iaQynXho .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-2JukF3Z6iaQynXho .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-2JukF3Z6iaQynXho .marker{fill:#333333;stroke:#333333;}#mermaid-svg-2JukF3Z6iaQynXho .marker.cross{stroke:#333333;}#mermaid-svg-2JukF3Z6iaQynXho svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-2JukF3Z6iaQynXho .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-2JukF3Z6iaQynXho .cluster-label text{fill:#333;}#mermaid-svg-2JukF3Z6iaQynXho .cluster-label span{color:#333;}#mermaid-svg-2JukF3Z6iaQynXho .label text,#mermaid-svg-2JukF3Z6iaQynXho span{fill:#333;color:#333;}#mermaid-svg-2JukF3Z6iaQynXho .node rect,#mermaid-svg-2JukF3Z6iaQynXho .node circle,#mermaid-svg-2JukF3Z6iaQynXho .node ellipse,#mermaid-svg-2JukF3Z6iaQynXho .node polygon,#mermaid-svg-2JukF3Z6iaQynXho .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-2JukF3Z6iaQynXho .node .label{text-align:center;}#mermaid-svg-2JukF3Z6iaQynXho .node.clickable{cursor:pointer;}#mermaid-svg-2JukF3Z6iaQynXho .arrowheadPath{fill:#333333;}#mermaid-svg-2JukF3Z6iaQynXho .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-2JukF3Z6iaQynXho .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-2JukF3Z6iaQynXho .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-2JukF3Z6iaQynXho .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-2JukF3Z6iaQynXho .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-2JukF3Z6iaQynXho .cluster text{fill:#333;}#mermaid-svg-2JukF3Z6iaQynXho .cluster span{color:#333;}#mermaid-svg-2JukF3Z6iaQynXho div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-2JukF3Z6iaQynXho :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}#mermaid-svg-2JukF3Z6iaQynXho .watermark>*{fill:#fff!important;stroke:none!important;font-size:15px!important;opacity:0.8!important;}#mermaid-svg-2JukF3Z6iaQynXho .watermark span{fill:#fff!important;stroke:none!important;font-size:15px!important;opacity:0.8!important;}

Order By: Sale Date

CSDN @ 2136

Sales Table

Sorted Data

CSDN @ 2136

  • Sales Table:原始数据表,包含所有销售记录。
  • Sorted Data:通过 ORDER BY 对数据进行排序,得到有序的销售记录。

3. GROUP BY 与 ORDER BY 的结合使用

我们可以将 GROUP BYORDER BY 结合起来,首先对数据进行分组,然后对结果进行排序。例如,统计每种水果的总销售数量,并按数量降序排列:

SELECT product, SUM(quantity) AS total_quantity
FROM sales
GROUP BY product
ORDER BY total_quantity DESC;

解释

  • SUM(quantity) 计算每种水果的销售总量。
  • ORDER BY total_quantity DESC 将结果按总销售数量降序排序。

输出结果

product

total_quantity

Banana

45

Cherry

30

Apple

25

4. 可视化示例

通过以下可视化图示,可以更直观地理解 GROUP BYORDER BY 的工作原理。这里使用 Mermaid 图形描述工具来展示数据流向和处理过程。

#mermaid-svg-aFPJv5TLetPW4EGJ {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aFPJv5TLetPW4EGJ .error-icon{fill:#552222;}#mermaid-svg-aFPJv5TLetPW4EGJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aFPJv5TLetPW4EGJ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-aFPJv5TLetPW4EGJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aFPJv5TLetPW4EGJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aFPJv5TLetPW4EGJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aFPJv5TLetPW4EGJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aFPJv5TLetPW4EGJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aFPJv5TLetPW4EGJ .marker.cross{stroke:#333333;}#mermaid-svg-aFPJv5TLetPW4EGJ svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aFPJv5TLetPW4EGJ .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-aFPJv5TLetPW4EGJ .cluster-label text{fill:#333;}#mermaid-svg-aFPJv5TLetPW4EGJ .cluster-label span{color:#333;}#mermaid-svg-aFPJv5TLetPW4EGJ .label text,#mermaid-svg-aFPJv5TLetPW4EGJ span{fill:#333;color:#333;}#mermaid-svg-aFPJv5TLetPW4EGJ .node rect,#mermaid-svg-aFPJv5TLetPW4EGJ .node circle,#mermaid-svg-aFPJv5TLetPW4EGJ .node ellipse,#mermaid-svg-aFPJv5TLetPW4EGJ .node polygon,#mermaid-svg-aFPJv5TLetPW4EGJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aFPJv5TLetPW4EGJ .node .label{text-align:center;}#mermaid-svg-aFPJv5TLetPW4EGJ .node.clickable{cursor:pointer;}#mermaid-svg-aFPJv5TLetPW4EGJ .arrowheadPath{fill:#333333;}#mermaid-svg-aFPJv5TLetPW4EGJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aFPJv5TLetPW4EGJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aFPJv5TLetPW4EGJ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-aFPJv5TLetPW4EGJ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-aFPJv5TLetPW4EGJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aFPJv5TLetPW4EGJ .cluster text{fill:#333;}#mermaid-svg-aFPJv5TLetPW4EGJ .cluster span{color:#333;}#mermaid-svg-aFPJv5TLetPW4EGJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-aFPJv5TLetPW4EGJ :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}#mermaid-svg-aFPJv5TLetPW4EGJ .watermark>*{fill:#fff!important;stroke:none!important;font-size:15px!important;opacity:0.8!important;}#mermaid-svg-aFPJv5TLetPW4EGJ .watermark span{fill:#fff!important;stroke:none!important;font-size:15px!important;opacity:0.8!important;}

Group By: Product

Sum Quantities

Order By: Total Quantity Desc

CSDN @ 2136

Sales Table

Grouped Data

Aggregated Results

Final Sorted Results

CSDN @ 2136

图示解读

  • Sales Table:原始数据表,包含所有销售记录。
  • Grouped Data:通过 GROUP BY 将数据按产品分组。
  • Aggregated Results:应用聚合函数(如 SUM),计算每种产品的总销售数量。
  • Final Sorted Results:通过 ORDER BY 对聚合后的结果进行排序,最终得到按销售数量排序的结果。

总结

通过掌握 GROUP BYORDER BY 子句,你可以有效地分析和整理 SQL 查询的结果。无论是进行数据汇总还是结果排序,这两者都是数据分析中不可或缺的工具。理解它们的用法可以帮助你更快速、高效地处理和分析数据。

希望本文能帮助你更好地理解和应用 SQL 查询技巧!如有任何问题或需要进一步的示例,请随时留言!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SOME/IP-SD -- 协议英文原文讲解6

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.3.1 E…

NameError: name ‘libpaddle‘ is not defined

问题场景: Error: Can not import paddle core while this file exists: C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\paddle\fluid\libpaddle.pyd Traceback (most recent call last): File "C:\Users\Admin\AppData\Roaming\Python\Pyth…

青少年编程与数学 02-010 C++程序设计基础 11课题、程序结构

青少年编程与数学 02-010 C程序设计基础 11课题、程序结构 一、C程序结构二、main函数1. main 函数的基本形式1.1 无参数形式1.2 带参数形式 2. 参数解释3. 示例3.1 无参数形式3.2 带参数形式 4. 编译和运行4.1 编译4.2 运行 5. main 函数的返回值6. 总结 三、预处理指令1. #in…

【Linux】learning notes(3)make、copy、move、remove

文章目录 1、mkdir (make directory)2、rmdir (remove directory)3、rm(remove)4、>5、touch 新建文件6、mv(move)7、cp(copy) 1、mkdir (make…

智能AI替代专家系统(ES)、决策支持系统(DSS)?

文章目录 前言一、专家系统(ES)是什么?二、决策支持系统(DSS)是什么?1.决策支持系统定义2.决策系统的功能与特点3.决策支持系统的组成 三、专家系统(ES)与决策支持系统(D…

实现Python+Django+Transformers库中的BertTokenizer和BertModel来进行BERT预训练,并将其应用于商品推荐功能

一、环境安装准备 #git拉取 bert-base-chinese 文件#创建 虚拟运行环境python -m venv myicrplatenv#刷新source myicrplatenv/bin/activate#python Django 集成nacospip install nacos-sdk-python#安装 Djangopip3 install Django5.1#安装 pymysql settings.py 里面需要 # 强制…

Qt Creator + CMake 构建教程

此教程基于: Qt 6.7.4Qt Creator 15.0.1CMake 3.26.4 Qt 6 以下的版本使用 CMake 构建可能会存在一些问题. 目录 新建窗体工程更新翻译添加资源软件部署(Deploy) 此教程描述了如何一步步在 Qt Creator 中使用 CMake 构建应用程序工程. 涉及 新建窗体工程, 更新翻译, 添加资源, …

5个GitHub热点开源项目!!

1.自托管 Moonlight 游戏串流服务:Sunshine 主语言:C,Star:14.4k,周增长:500 这是一个自托管的 Moonlight 游戏串流服务器端项目,支持所有 Moonlight 客户端。用户可以在自己电脑上搭建一个游戏…

【Mark】记录用宝塔+Nginx+worldpress+域名遇到的跨域,301,127.0.0.1,CSS加载失败问题

背景 想要用宝塔搭建worldpress,然后用域名直接转https,隐藏掉ipport。 结果被折磨了1天,一直在死活在301,127.0.0.1打转 还有css加载不了的情况 因为worldpress很多是301重定向的,所以改到最后我都不知道改了什么&am…

认知动力学视角下的生命优化系统:多模态机器学习框架的哲学重构

认知动力学视角下的生命优化系统:多模态机器学习框架的哲学重构 一、信息熵与生命系统的耗散结构 在热力学第二定律框架下,生命系统可视为负熵流的耗散结构: d S d i S d e S dS d_iS d_eS dSdi​Sde​S 其中 d i S d_iS di​S为内部熵…

考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码

考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码 一、引言 1.1、研究背景和意义 随着全球航运业的迅猛发展,船舶交通密度不断增大,海上交通事故频发,严重威胁到海上航行的安全。国际海上避碰规…

基于Kerberos认证对接华为云Elasticsearch

可以通过华为官方提供的Elasticsearch Java客户端(基于Elasticsearch官方版本改造),实现基于Kerberos认证访问和操作华为云Elasticsearch;亦可以使用更加通用的开源Elasticsearch Java客户端bboss,实现基于Kerberos认证…

【湖北省计算机信息系统集成协会主办,多高校支持 | ACM出版,EI检索,往届已见刊检索】第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025)

第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025)将于2025年4月11日至13日在中国武汉盛大召开。本次会议旨在为边缘计算、并行计算及分布式计算领域的研究人员、学者和行业专家提供一个高水平的学术交流平台。 随着物联网、云计算和大数据技术…

CSS—背景属性与盒子模型(border、padding、margin)

目录 一.背景属性 二.盒子模型 1.边框border a. 圆角属性border-radius b. 图像属性border-image 2. 内边距padding 3. 外边距margin 3. 宽度width与高度height 一.背景属性 浏览器背景图默认是平铺效果(复制图片直至填满设置的区域大小) 背景…

【文献阅读】A Survey Of Resource-Efficient LLM And Multimodal Foundation Models

发表时间:二〇二四年九月二十三日 摘要 大型基础模型,包括大语言模型(LLMs)、视觉Transformer(ViTs)、扩散模型以及基于大语言模型的多模态模型,正在革新整个机器学习的生命周期,…

SslConnection::SslConnection()详解

一、🔍 SslConnection::SslConnection() 详解 这个构造函数的主要作用是: 创建 SSL 对象创建 BIO(I/O 缓冲区)初始化 SSL 服务器模式绑定回调函数(onRead() 处理接收数据) 📌 1. 初始化 SSL 相…

python中单例模式应用

数据库连接池单例模式 1. 为什么使用单例模式 创建数据库连接是一个昂贵的过程(涉及网络通信、认证等)。单例模式的连接池可以在程序启动时初始化一组连接,并在整个生命周期中重用这些连接,而不是每次请求都新建连接。同时还可…

蓝桥 发现环

0发现环 - 蓝桥云课 找到环 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。 为了恢复正常传输&am…

不同版本的BLE和WiFi有什么区别?

一、蓝牙技术对比:从 Bluetooth 4.0 到 5.3 的演进与室内定位应用 蓝牙技术自推出以来,经历了多次重大升级,每一代都在传输速率、功耗、覆盖范围和功能上有所改进。本文将从 Bluetooth 4.0 到 5.3,逐一对比各版本的特点&#xff0…

看视频学习方法总结

以下是提高教学视频吸收率的系统性方法,结合认知科学原理和实际学习场景,帮助您最大化学习效果: 一、观看前的黄金准备阶段 60秒快速扫描法 用1分钟快速浏览视频目录、章节标题和简介,建立知识框架。荷兰伊拉斯姆斯大学实验表明&…