金融量化学习---Python, MySQL, Pandas

这里用来记录一些在金融领域,尤其是银行相关的资金、债券、票据中应用到的数据管理与分析, 编程等心得或笔记,以及个人的一点小小兴趣(易经八卦、藏密禅修)等

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

MySQL-给一列赋予行号


现有一张表: Greatersts

建表结构:

CREATE TABLE `Greatersts` (
  `key` varchar(32) DEFAULT NULL,
  `x` int(11) DEFAULT NULL,
  `y` int(11) DEFAULT NULL,
  `z` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入数据:

INSERT INTO `Greatersts` VALUES ('A', 1, 2, 3);
INSERT INTO `Greatersts` VALUES ('B', 5, 5, 2);
INSERT INTO `Greatersts` VALUES ('C', 4, 7, 1);
INSERT INTO `Greatersts` VALUES ('D', 3, 3, 6);

赋予行号实现语句

使用自定义变量

解法一 使用SET定义变量

SET @row_num:=0;
SELECT (@row_num:=@row_num+1) AS row_num, a.*
FROM Greatersts AS a;

解法二 INNER JOIN

SELECT (@row_num:=@row_num+1) AS row_num, a.*
FROM Greatersts AS a
INNER JOIN (SELECT @row_num:=0) b;

解法三

SELECT (@row_num:=@row_num+1) AS row_num, a.*
FROM Greatersts AS a, (SELECT @row_num:=0) b;

不使用自定义变量

解法四 使用子查询

SELECT (SELECT COUNT()+1 FROM Greatersts AS b WHERE b.key < a.key) AS row_num , a.
FROM Greatersts AS a;

查询结果

Python重置MySQL的数据库序号

重置gl00501表中id列的序号,使之连续

conn=py.connect(host='localhost',port=3306,user='root',passwd='XXX',db=table_name)
cur=conn.cursor()
sql1='set @i=0;'
sql2='update %s set id=(@i:=@i+1);'% db_name
sql3='alter table %s auto_increment =0;'% db_name
cur.execute(sql1)
cur.execute(sql2)
cur.execute(sql3)
cur.close()
conn.close()

参考文献
1.Create a Cumulative Sum Column in MySQL
2.https://blog.csdn.net/zhou16333/article/details/104703394/

posted on   chengjon  阅读(1001)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示