sql - 我想在表中添加新行,但我想使用列名 (SQL) 进行数学运算
问题描述
我有一张这样的桌子
2001年 | 2002年 | 2003年 |
---|---|---|
125.000 | 313.000 | 515.00 |
我想将年度百分比增长添加为行
解决方案
您应该将表结构更改为:
year | val
2001 | 125.000
2002 | 313.000
2003 | 515.00
然后使用LAG
解析函数:
SELECT
year,
val,
100.0*(val - LAG(val) OVER (ORDER BY year)) / LAG(val) OVER (ORDER BY YEAR) AS pct_growth
FROM yourTable
ORDER BY year;
推荐阅读
- php - 从 MySQLi 绑定结果确定双字段是否为空
- c# - FileStream 抛出“操作系统句柄的位置不是 FileStream 所期望的。” 在 Finalize() 调用
- python - 多列的快速日期时间解析,read_csv
- r - 使用 I 字符串来引用 dplyr 中的变量?
- python - patsy dmatrices 引发“AssertionError”
- java - 停电期间文件操作的执行方式
- powershell - 获取特定事件查看器源的日期和时间
- python - “ModuleNotFoundError”与使用 Python 的 Azure 函数应用程序
- android - 我想从相应的用户名从数据库中检索密码,但我无法做到
- powershell - $MyInvocation.MyCommand.Name 将 ps1 转换为 exe 后返回空值