【MySQL】一文带你掌握聚合查询和联合查询
文章目录
- 1. 聚合函数
- 1.1 COUNT
- 1.2 SUM
- 1.3 AVG
- 1.4 MAX,MIN
- 2. GROUP BY
- 3. HAVING
- 4. 联合查询
- 4.1 内连接
- 4.2 外连接
- 4.3 自连接
- 4.4 子连接
- 5.合并查询
- 5.1 UNION
- 5.2 UNION ALL
1. 聚合函数
概念:
聚合函数是一种用于处理数据集合的函数,它将多个数据行作为输入,执行特定的计算,然后返回单个结果。聚合函数通常用于统计和汇总数据,例如计算平均值、总和、最大值、最小值等。
常见的聚合函数包括:
- COUNT - 统计数据行数
- SUM - 计算数据总和
- AVG - 计算数据的平均值
- MAX - 找出数据的最大值
- MIN - 找出数据的最小值
聚合函数通常与 GROUP BY 子句一起使用,以便根据一个或多个列对数据进行分组,并将聚合函数应用于每个分组。
以下举例都将以下表为例:
mysql> select * from student;
+----+--------+---------+------+---------+
| id | name | chinese | math | english |
+----+--------+---------+------+---------+
| 1 | 猪八戒 | 90.5 | 54.5 | 80.0 |
| 2 | 唐僧 | 95.0 | 85.0 | 70.0 |
| 3 | 孙悟空 | 75.0 | 75.5 | 87.0 |
| 4 | 沙僧 | 80.0 | 45.0 | 90.5 |
+----+--------+---------+------+---------+
1.1 COUNT
统计数据行数
mysql> -- count 查询数据数量,为 NULL 的数据不会计入结果
mysql> select count(*) from student;
+----------+
| count(*) |
+----------+
| 4 |
+----------+
1 row in set (0.00 sec)mysql> select count(id) from student;
+-----------+
| count(id) |
+-----------+
| 4 |
+-----------+
1 row in set (0.00 sec)
1.2 SUM
计算数据总和
mysql> -- 计算数据之和,只能用于数值类型
mysql> select sum(math) from student;
+-----------+
| sum(math) |
+-----------+
| 260.0 |
+-----------+
1 row in set (0.00 sec)mysql>-- 当用于非数值类型将为0
mysql> select sum(name) from student;
+-----------+
| sum(name) |
+-----------+
| 0 |
+-----------+
1 row in set, 4 warnings (0.00 sec)mysql>-- SUM 函数只能用于数值类型的列,不能用于 *
mysql> select sum(*) from student;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) from student' at line 1
1.3 AVG
计算数据的平均值
mysql> -- 平均值,只可以作用于数值类型列
mysql> select avg(math) from student;
+-----------+
| avg(math) |
+-----------+
| 65.00000 |
+-----------+
1 row in set (0.00 sec)mysql> select avg(math+chinese+english) from student;
+---------------------------+
| avg(math+chinese+english) |
+---------------------------+
| 232.00000 |
+---------------------------+
1 row in set (0.00 sec)mysql> select avg(math+chinese+english) as avg from student;
+-----------+
| avg |
+-----------+
| 232.00000 |
+-----------+
1 row in set (0.00 sec)
1.4 MAX,MIN
最大值,最小值
mysql> -- 最大值,最小值
mysql> select max(math), min(math) from student;
+-----------+-----------+
| max(math) | min(math) |
+-----------+-----------+
| 85.0 | 45.0 |
+-----------+-----------+
1 row in set (0.00 sec)mysql> select max(chinese+math+english) as max,min(chinese+math+english) as min from student;
+-------+-------+
| max | min |
+-------+-------+
| 250.0 | 215.5 |
+-------+-------+
1 row in set (0.00 sec)
2. GROUP BY
概念:
GROUP BY是SQL命令的一部分,用于按一个或多个列中具有相同值的行进行分组。通常与聚合函数一起使用,例如SUM、AVG、COUNT、MIN和MAX,以对每个组应用计算并对数据进行分组。GROUP BY子句通常用于报告和数据分析中,以对大量数据进行汇总和组织。它有助于识别数据中的模式和趋势,并使其更易于理解和解释。
语法:
SELECT column1,column2,aggregate_function(column3)FROM table_name GROUP BY column1,column2;
以下举例以此表为例:
mysql> select * from emp;
+----+--------+----------+----------+
| id | name | role | salary |
+----+--------+----------+----------+
| 1 | 马晕 | 服务员 | 1000.20 |
| 2 | 马华藤 | 游戏陪玩 | 2000.99 |
| 3 | 孙悟空 | 游戏角色 | 999.11 |
| 4 | 猪无能 | 游戏角色 | 333.50 |
| 5 | 沙和尚 | 游戏角色 | 700.33 |
| 6 | 老王 | 董事长 | 12000.66 |
+----+--------+----------+----------+
查询每个角色的最高工资、最低工资和平均工资:
mysql> select role, max(salary),min(salary),avg(salary) from emp group by role;
+----------+-------------+-------------+--------------+
| role | max(salary) | min(salary) | avg(salary) |
+----------+-------------+-------------+--------------+
| 服务员 | 1000.20 | 1000.20 | 1000.200000 |
| 游戏角色 | 999.11 | 333.50 | 677.646667 |
| 游戏陪玩 | 2000.99 | 2000.99 | 2000.990000 |
| 董事长 | 12000.66 | 12000.66 | 12000.660000 |
+----------+-------------+-------------+--------------+
4 rows in set (0.00 sec)
3. HAVING
概念:
HAVING子句是SQL的一部分,通常与GROUP BY子句一起使用,用于对分组后的数据进行过滤。它允许使用聚合函数计算并过滤分组后的数据,以便只输出特定条件的结果。
语法:
SELECT column1,aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;
显示平均工资低于1500的角色:
mysql> select role,max(salary),min(salary),avg(salary) from emp group by role having avg(salary)<1500;
+----------+-------------+-------------+-------------+
| role | max(salary) | min(salary) | avg(salary) |
+----------+-------------+-------------+-------------+
| 服务员 | 1000.20 | 1000.20 | 1000.200000 |
| 游戏角色 | 999.11 | 333.50 | 677.646667 |
+----------+-------------+-------------+-------------+
2 rows in set (0.00 sec)
显示平均工资高于2000的角色:
mysql> select role,max(salary),min(salary),avg(salary) from emp group by role having avg(salary)>2000;
+----------+-------------+-------------+--------------+
| role | max(salary) | min(salary) | avg(salary) |
+----------+-------------+-------------+--------------+
| 游戏陪玩 | 2000.99 | 2000.99 | 2000.990000 |
| 董事长 | 12000.66 | 12000.66 | 12000.660000 |
+----------+-------------+-------------+--------------+
2 rows in set (0.00 sec)
4. 联合查询
概念:
联合查询(UNION)是SQL中的一种操作,用于将两个或多个SELECT语句的结果合并为一个结果集。联合查询可以将两个或多个表的数据合并在一起,并返回一个新的结果集。联合查询是对多张表的数据取笛卡尔积:
联合查询一般都会有一些行是不符合要求的,这个时候我们可以添加条件精选筛选。
以下举例以此为例:
mysql> select * from student;
+------+--------+----------+
| id | name | class_id |
+------+--------+----------+
| 1 | 唐僧 | 1 |
| 2 | 沙僧 | 1 |
| 3 | 孙悟空 | 1 |
| 4 | 宋江 | 2 |
| 5 | 李逵 | 2 |
| 6 | 诸葛亮 | 3 |
| 7 | 张飞 | 3 |
| 8 | 曹操 | 3 |
| 9 | 周瑜 | 3 |
+------+--------+----------+
9 rows in set (0.00 sec)mysql> select * from class;
+------+--------+
| id | name |
+------+--------+
| 1 | 西游班 |
| 2 | 水浒班 |
| 3 | 三国班 |
+------+--------+
3 rows in set (0.00 sec)
4.1 内连接
概念:
内连接是一种关系型数据库的查询方式,它是联合查询的一种,但并不是所有联合查询都是内连接。内连接是基于两个或多个表之间的公共键将记录连接在一起的查询方式。内连接仅返回两个表中都包含匹配键值的行,其他行将被排除在结果之外。内连接通常使用JOIN关键字实现。
语法:
select 字段 from 表1 别名1 [inner] join 表2 别名2 on 连接条件 and 其他条件;
select 字段 from 表1 别名1,表2 别名2 where 连接条件 and 其他条件;
当我们查询时,如果不进行条件筛选,那么将会造成下面场景:

这种结果显然不是我们想要的,所以我们可以加上条件,进行筛选,精简表格,就是上面语法两种:
mysql> -- join on
mysql> select student.name,class.name from student join class on student.class_id = class.id;
+--------+--------+
| name | name |
+--------+--------+
| 唐僧 | 西游班 |
| 沙僧 | 西游班 |
| 孙悟空 | 西游班 |
| 宋江 | 水浒班 |
| 李逵 | 水浒班 |
| 诸葛亮 | 三国班 |
| 张飞 | 三国班 |
| 曹操 | 三国班 |
| 周瑜 | 三国班 |
+--------+--------+
9 rows in set (0.00 sec)mysql> -- where
mysql> select student.name,class.name from student, class where student.class_id = class.id;
+--------+--------+
| name | name |
+--------+--------+
| 唐僧 | 西游班 |
| 沙僧 | 西游班 |
| 孙悟空 | 西游班 |
| 宋江 | 水浒班 |
| 李逵 | 水浒班 |
| 诸葛亮 | 三国班 |
| 张飞 | 三国班 |
| 曹操 | 三国班 |
| 周瑜 | 三国班 |
+--------+--------+
9 rows in set (0.00 sec)mysql> -- 别名
mysql> select stu.name,cla.name from student stu, class cla where stu.class_id = cla.id;
+--------+--------+
| name | name |
+--------+--------+
| 唐僧 | 西游班 |
| 沙僧 | 西游班 |
| 孙悟空 | 西游班 |
| 宋江 | 水浒班 |
| 李逵 | 水浒班 |
| 诸葛亮 | 三国班 |
| 张飞 | 三国班 |
| 曹操 | 三国班 |
| 周瑜 | 三国班 |
+--------+--------+
9 rows in set (0.00 sec)
4.2 外连接
概念:
在数据库中,外连接(outer join)是指通过两个或多个表中的一个或多个共同数据列将它们连接起来,产生一个新的查询结果集。不同于Inner Join(内连接),外连接能够返回那些在一个表中存在但在另一个表中不存在的数据行。
外连接有左连接(left join)、右连接(right join)和全连接(full join)三种类型。
左连接(left join)返回左表中的所有数据行,即使在右表中没有匹配的数据行,也不会过滤掉左表中的数据。右连接(right join)则是返回右表中的所有数据行。
全连接(full join)是指返回两个表中的所有数据,不管它们在另一个表中是否有与之匹配的数据。全连接通常不常用,因为它可能会返回非常大的结果集。
外连接和内连接不同点在于外连接可以返回任何表中的数据,而内连接只能返回两个表中共有的数据行。
语法:
-- 左外连接,表1完全显示
select 字段名 from 表名1 left join 表名2 on 连接条件;
-- 右外连接,表2完全显示
select 字段 from 表名1 right join 表名2 on 连接条件;
代码使用和外连接基本相同,为了防止博客臃肿,大家可以自己敲打试试,不会的话随时可以私信问我。
4.3 自连接
概念:
自链接(self join)是指在同一张表中进行联接操作的过程。它和普通的表之间连接操作类似,但是表名出现了两次,也就是同一个表名在同一查询中出现了两次或以上。
自链接的语法格式与普通的表之间连接非常相似,只需要在表名后加上别名即可,这里的别名可以是任何合法的标识符,用于区分同一个表中不同的记录。
语法:
SELECT a.name, b.name AS leader FROM staff a, staff b WHERE a.leader_id = b.id;
4.4 子连接
概念:
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。
使用示例:
mysql> -- 借助子查询查询诸葛亮同班同学
mysql> select * from student where class_id=(select class_id from student where name='诸葛亮');
+------+--------+----------+
| id | name | class_id |
+------+--------+----------+
| 6 | 诸葛亮 | 3 |
| 6 | 张飞 | 3 |
| 6 | 曹操 | 3 |
| 6 | 周瑜 | 3 |
+------+--------+----------+
4 rows in set (0.00 sec)mysql> -- 也可以将=换成in
mysql> select * from student where class_id in (select class_id from student where name='诸葛亮');
+------+--------+----------+
| id | name | class_id |
+------+--------+----------+
| 6 | 诸葛亮 | 3 |
| 6 | 张飞 | 3 |
| 6 | 曹操 | 3 |
| 6 | 周瑜 | 3 |
+------+--------+----------+
4 rows in set (0.00 sec)mysql> -- 使用not in可以查询非诸葛亮同班同学
mysql> select * from student where class_id not in (select class_id from student where name='诸葛亮');
+------+--------+----------+
| id | name | class_id |
+------+--------+----------+
| 1 | 唐僧 | 1 |
| 2 | 沙僧 | 1 |
| 3 | 孙悟空 | 1 |
| 4 | 宋江 | 2 |
| 5 | 李逵 | 2 |
+------+--------+----------+
5 rows in set (0.00 sec)
5.合并查询
概念:
MySQL的合并查询(union)是一种在多个查询结果中获取不同数据行并将它们整合成一个查询结果集的查询方式。合并查询需要满足一定的条件,比如数据行必须具有相同的列数和数据类型,并且必须按照相同的顺序排列。
合并查询通常用于需要从多个表或查询结果中获取数据的查询需求。合并查询分为两种类型:UNION和UNION ALL。UNION去重并合并查询结果,而UNION ALL只是简单地合并查询结果。
5.1 UNION
mysql> -- student表
mysql> select * from student;
+--------+----------+
| name | class_id |
+--------+----------+
| 唐僧 | 1 |
| 沙僧 | 1 |
| 孙悟空 | 1 |
| 宋江 | 2 |
| 李逵 | 2 |
| 诸葛亮 | 3 |
+--------+----------+
6 rows in set (0.00 sec)mysql> -- class表
mysql> select * from class;
+------+--------+
| id | name |
+------+--------+
| 1 | 西游班 |
| 2 | 水浒班 |
| 3 | 三国班 |
+------+--------+
3 rows in set (0.00 sec)mysql> -- 自己合并自己使用union就只能得到一个自己表
mysql> select * from student-> union-> select * from student;
+--------+----------+
| name | class_id |
+--------+----------+
| 唐僧 | 1 |
| 沙僧 | 1 |
| 孙悟空 | 1 |
| 宋江 | 2 |
| 李逵 | 2 |
| 诸葛亮 | 3 |
+--------+----------+
6 rows in set (0.00 sec)mysql> -- 两个不同的表列数要相同,不然不能拼接
mysql> select * from student-> union-> select * from class;
+--------+----------+
| name | class_id |
+--------+----------+
| 唐僧 | 1 |
| 沙僧 | 1 |
| 孙悟空 | 1 |
| 宋江 | 2 |
| 李逵 | 2 |
| 诸葛亮 | 3 |
| 1 | 西游班 |
| 2 | 水浒班 |
| 3 | 三国班 |
+--------+----------+
9 rows in set (0.00 sec)
5.2 UNION ALL
mysql> 必须列数相同,全部拼接在一张表
mysql> select * from student-> union all-> select * from class;
+--------+----------+
| name | class_id |
+--------+----------+
| 唐僧 | 1 |
| 沙僧 | 1 |
| 孙悟空 | 1 |
| 宋江 | 2 |
| 李逵 | 2 |
| 诸葛亮 | 3 |
| 1 | 西游班 |
| 2 | 水浒班 |
| 3 | 三国班 |
+--------+----------+
9 rows in set (0.00 sec)mysql> -- 没有去重效果
mysql> select * from student-> union all-> select * from student;
+--------+----------+
| name | class_id |
+--------+----------+
| 唐僧 | 1 |
| 沙僧 | 1 |
| 孙悟空 | 1 |
| 宋江 | 2 |
| 李逵 | 2 |
| 诸葛亮 | 3 |
| 唐僧 | 1 |
| 沙僧 | 1 |
| 孙悟空 | 1 |
| 宋江 | 2 |
| 李逵 | 2 |
| 诸葛亮 | 3 |
+--------+----------+
12 rows in set (0.00 sec)
相关文章:
【MySQL】一文带你掌握聚合查询和联合查询
文章目录 1. 聚合函数1.1 COUNT1.2 SUM1.3 AVG1.4 MAX,MIN 2. GROUP BY3. HAVING4. 联合查询4.1 内连接4.2 外连接4.3 自连接4.4 子连接 5.合并查询5.1 UNION5.2 UNION ALL 1. 聚合函数 概念: 聚合函数是一种用于处理数据集合的函数,它将多个…...
初步了解JVM
JVM 整体组成部分 类加载器 类加载过程 加载:使用IO读取字节码文件,转换并存储,为每个类创建一个Class对象,存储在方法区中 链接(验证,准备,解析) 验证:对字节码文件格式进…...
嘀嗒陪诊小程序v1.0.8+小程序前端
嘀嗒陪诊小程序功能相对简单,后台也简捷,如果只是做个陪诊服务的小程序也基本能满足了,整体测试了下海参崴发现BUG,小程序端也能正常为使用,唯一用户授权接口是老的。 应用背景:人口老龄化少子化ÿ…...
Java中线程的生命周期
Java中线程的生命周期 Java中线程的声明周期与os中线程的生命周期不太一样,java中线程有6个状态,见下: NEW: 初始状态,线程被创建出来但没有被调用 start() 。RUNNABLE: 运行状态,线程被调用了 start()等待运行的状态…...
光线追踪RayTracing,基本原理,判断物体与光线相交
光线的三点假设: 光线按直线传播光线之间不会发生碰撞光线会经过一系列折射反射进入摄像机 可以从摄像机发出光线,推出可逆的光路 上图中,透明球在与相机直连的线条处,需要将折射和反射的着色点结果相加,如果有光源直…...
三十六、数学知识——组合数(递推法 + 预处理法 + 卢卡斯定理 + 分解质因数求解组合数 + 卡特兰数)
组合数算法主要内容 一、基本思路1、组合数基本概念2、递推法——询问次数多 a b 值较小 模处理(%mod)3、预处理阶乘方法——询问次数较多 a b 值很大 模处理(%mod)4、卢卡斯定理——询问次数较少 (a b 值很大&am…...
LinuxC编程——高级文件操作
目录 一、查询文件信息1、stat2、stat fstat lstat区别 二、目录操作2.1 opendir2.2 readdir2.3 closedir例练习:实现ls操作 三、库3.1 库的定义3.2 库的分类3.2.1 静态库3.2.2 动态库 3.3 创建库3.3.1 静态库制作3.3.2 动态库制作 一、查询文件信息 1、stat int …...
【基础知识整理】图的基本概念 邻接矩阵 邻接表
一、图概述 定义: 图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的; 其中,点通常被成为"顶点(vertex)“,而点与点之间的连线则被成为"边或弧”(edege)。 通常记为,G(V,E)。 图是一种重要的…...
5.程序控制结构|Java学习笔记
文章目录 程序流程控制介绍顺序控制分支控制分支控制if elseswitch分支结构 循环控制for循环控制while循环控制do...while循环控制跳转控制语句breakcontinuereturn 程序流程控制介绍 顺序控制分支控制循环控制 顺序控制 程序从上到下逐行地执行,中间没有任何判断…...
【最优PID 整定】PID性能指标(ISE,IAE,ITSE和ITAE)优化、稳定性裕量(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Linux内核中断和Linux内核定时器
目录 Linux内核中断 Linux内核定时器 Linux内核中断 int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,const char *name, void *dev) 功能:注册中断 参数: irq : 软中断号 gpio的软中断号 软中断号 gpio_to_i…...
OMG--IDL(Interface Definition Language)
OMG--IDL(Interface Definition Language) 1 概述2 内容缩写IDL 语法和语义概述词法约定ISO Latin-1的字母字符如下表十进制数字字符图形字符格式化字符Tokens注释标识符冲突规则转义标识符关键字IDL识别的其他字符字面量 预处理IDL 语法构建块核心数据类…...
英语学习:M开头
machine 机器 mad 发疯的,生气的 madam 女士,夫人 madame 夫人 magazine 杂志 magic 有魔力的 maid 女仆,侍女 mail 邮递 mailbox 邮箱 mainland 大陆 major 较大的,主要的 majority 大多数 male 雄的 man 人类 man…...
【计算机组成原理与体系结构】控制器
目录 一、CPU的功能与基本结构 二、指令周期的数据流 三、数据通路 四、硬布线控制器 五、微程序控制器 六、微指令 一、CPU的功能与基本结构 运算器基本结构 控制器基本结构 CPU的基本结构 二、指令周期的数据流 取址周期 间址周期 中断周期 指令周期流程 三、数据通路 …...
结构化命令
章节目录: 一、使用 if-then 语句二、if-then-else 语句三、嵌套 if 语句四、test 命令4.1 数值比较4.2 字符串比较4.3 文件比较 五、复合条件测试六、if-then 的高级特性6.1 使用单括号6.2 使用双括号6.3 使用双方括号 七、case 命令八、结束语 本章内容࿱…...
Java Web实训项目:西蒙购物网
文章目录 一、创建数据库和表1、创建数据库2、创建用户表3、创建类别表4、创建商品表5、创建订单表 二、创建Simonshop项目1、创建web项目2、修改Artifacts名称:simonshop3、重新部署项目4、编辑首页5、启动应用,查看效果 三、创建实体类1、用户实体类2、…...
ChatGPT Prompt 提示词设计技巧必知必会
本文内容整理自图灵社区直播《朱立成:ChatGPT Prompt提示词技巧必知必会》。 朱立成,图灵社区《ChatGPT即学即用》视频课程作者,软件工程师,对新事物充满好奇,关注ChatGPT应用。2001年毕业于浙江大学,从事软…...
尚硅谷-云尚办公-项目复盘
尚硅谷-云尚办公-项目复盘 资料地址本文介绍问题汇总问题1.knife4j无法下载 视频4问题2.dev等含义 视频5问题3.wrapper继承/实现图 视频8问题4.修改统一返回结果 视频11问题5.修改后新增也变修改 视频29问题6.redis中key值乱码 视频55-60问题7.RangeError: Maximum call stack …...
nacos升级到2.0.3(单机模式)
前提:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明 Spring Cloud AlibabaSpring CloudSpring BootNacos2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE2.0.3 一、pom.xml文件 <parent><groupId>org.springframework.boot&…...
Koa学习3:用户添加、错误处理
模型 在src目录下创建model目录,用来存放模型 创建用户模型 user.model.js 注意: UUID类型是无法自增的,将id设置为UUID类型时只需要为其指定默认值即可 // 数据类型 const { DataTypes } require(sequelize); // 导入已经连接了数据库…...
事件驱动架构完全指南:gh_mirrors/rea/reading中的异步编程模式
事件驱动架构完全指南:gh_mirrors/rea/reading中的异步编程模式 【免费下载链接】reading A list of computer-science readings I recommend 项目地址: https://gitcode.com/gh_mirrors/rea/reading 事件驱动架构是现代软件开发中至关重要的异步编程模式&am…...
微信小程序开发避坑指南:从Flex布局失效到onLaunch不触发,这些“送命题”你踩过几个?
微信小程序开发避坑指南:从Flex布局失效到onLaunch不触发,这些“送命题”你踩过几个? 在微信小程序开发中,即便是经验丰富的开发者也会遇到一些看似简单却暗藏玄机的问题。这些问题往往在关键时刻暴露出来,轻则导致界面…...
HY-MT1.5-7B常见问题解答:翻译不稳定与temperature设置技巧
HY-MT1.5-7B常见问题解答:翻译不稳定与temperature设置技巧 1. 翻译不稳定的常见原因分析 1.1 模型随机性与temperature参数 HY-MT1.5-7B作为生成式大语言模型,其翻译结果天然带有一定随机性。这种特性由temperature参数控制: 低temperat…...
Z-Image-GGUF快速部署:使用systemd替代supervisor的轻量级服务管理方案
Z-Image-GGUF快速部署:使用systemd替代supervisor的轻量级服务管理方案 1. 项目简介与部署思路 如果你正在寻找一个更轻量、更原生的服务管理方案来部署Z-Image-GGUF,那么systemd可能是比supervisor更好的选择。今天我要分享的就是如何用systemd来管理…...
Nano-Banana软萌拆拆屋云服务:Web端免安装Knolling生成平台
Nano-Banana软萌拆拆屋云服务:Web端免安装Knolling生成平台 1. 引言:当AI遇见软萌拆解艺术 你有没有遇到过这样的情况:看到一件特别可爱的衣服,想要了解它的每一个细节,却不知道从哪里开始?或者作为设计师…...
单片机学习路径:从寄存器操作到工程实践
1. 单片机学习路径的工程化实践指南单片机学习并非玄学,而是一套可拆解、可验证、可复现的工程能力构建过程。大量初学者陷入“学不会”的困境,并非智力或基础问题,而是缺乏清晰的技术路径规划与可落地的实践锚点。本文基于多年嵌入式系统开发…...
避坑指南:为什么MATLAB的geotiffread无法识别你手动修改的TIF文件?从底层解析TIFF格式差异
深度解析:MATLAB处理手动修改TIF文件失败的底层机制与解决方案 1. TIFF与GeoTIFF格式的本质差异 许多开发者在使用MATLAB处理遥感或地理空间数据时,常常会遇到一个令人困惑的问题:为什么通过专业GIS软件(如ENVI、ArcMap࿰…...
【笔试真题】- 美团-2026.03.21-算法岗
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 美团-2026.03.21-算法岗 1. LYA的档案拼接升序册 问题描述 本题是美团 2026.03.21 研发岗第 1 题的原题。 LYA 手里有一份长度为 n n n 的档案编号序列...
2026年ChatGPT技术拆解:从架构原理到国内免费使用方案
ChatGPT作为当前大语言模型的代表,其核心技术在于Transformer架构、RLHF(人类反馈强化学习)训练以及大规模算力支撑。对于国内用户而言,想要深入体验并对比不同模型的技术特点,目前最便捷的方案是使用聚合镜像平台RskA…...
Token限制下的ChatGPT高效对话:如何优化Prompt长度与内容(含计算工具推荐)
Token限制下的ChatGPT高效对话:如何优化Prompt长度与内容(含计算工具推荐) 当ChatGPT成为日常开发和工作的重要工具时,许多用户都会遇到一个共同的瓶颈——Token限制。这个看似技术性的问题,实际上直接影响着我们与AI对…...

