首页 > 解决方案 > 如何使用 sql-window 函数在 SQL 中创建计算列?

问题描述

因此,我正在研究这个解决方案,该解决方案涉及获取 3 列的输入,例如“年”、“月”和“支出”,并使用它们使用模仿 SQL 窗口函数的逻辑创建另一列“年总计”。例如,鉴于前三列是可编辑的,我需要下表,

|------------|--------|--------|----------|
| 年 |月 | 花费 |年总计|
|------------|--------|--------|----------|
| 2018 | 一月 | 10 | 55 |
| 2018 | 二月 | 20 | 55 |
| 2018 | 十月 | 25 | 55 |
| 2019 | 一月 | 15 | 120 |
| 2019 | 八月 | 60 | 120 |
| 2019 | 十一月 | 45 | 120 |
|------------|--------|--------|----------|

但是在前端和动态计算这个使得解决方案非常慢。因此,我尝试使用计算列将此计算移动到 SQL 表中的后端。基本上,数据将被写入后端(SQL),计算并重新读取列以显示在前端。

我环顾了一下,才发现 Windows 函数不能用于 SQL 中的计算列。另请注意,解决方案中不允许存储过程。

任何人都可以建议如何做到这一点,或者即使这是可能的?

请注意,前端是 Powerapps/Power BI

标签: sqlsql-serverpowerbiwindow-functions

解决方案


'使用模仿 SQL 窗口函数的逻辑' 为什么?

您只需要加入按年份分组的子查询。

select t.* , s.sumspend
from <table> t
join (select year, sum(spend) sumspend from <table> group by year) s
on s.year = t.year;

推荐阅读