sql - row_number 函数的计算列公式
问题描述
我正在尝试为计算列找到一个公式,该公式将返回与ROW_NUMBER()
函数相同的结果。因为我无法使用该ROW_NUMBER()
功能并将结果保存在表格中。我有一张如下表;
ID YEAR
1 2018
2 2018
3 2019
4 2019
5 2020
6 2018
7 2019
我想要一个公式来计算和分配取决于年份的行数,如下所示;
ID YEAR COMPUTED COLUMN
1 2018 1
2 2018 2
3 2019 1
4 2019 2
5 2020 1
6 2018 3
7 2019 3
解决方案
我正在尝试为计算列找到一个公式,该公式将返回与 ROW_NUMBER() 函数相同的结果。
您只是不能在计算列中使用窗口函数;窗口函数对一系列行(称为窗口框架)进行操作,而计算列仅对其所属的行具有可见性。
我无法使用 ROW_NUMBER() 函数并将结果保存在表格中
虽然这在技术上是可行的,但我不建议这样做。这是派生信息,可以在需要时即时计算。您可以改用视图:
create view myview
as
select
id,
year,
row_number() over (partition by year order by id) rn
from mytable
推荐阅读
- java - 我不能在 Cucumber Spring Boot 测试中通过两个步骤定义 @Spy 对象
- python - 根据列中的条件将 Pandas 数据帧拆分为多个数据帧
- javascript - 如何在前一个 div 滑出并隐藏后滑入一个 div,然后用新的 div 重复而不制作幻灯片?
- javascript - 我有一个固定的 div,我使用 jquery 在滚动时淡出。它工作正常,但如果我半途而废并引用 div 显示的页面
- azure - Terraform 模块输出无法解析其他模块中的输入变量
- c++ - 添加到文件而不删除里面的内容
- c# - 有没有办法正确使用 AutoMapper 来实现带判别器的继承?
- go - html/template 类型的 Golang 全局变量未在其他包中定义
- javascript - 动态 svg 文本不显示在屏幕上
- asp.net - ASP.NET Web API Azure Blob 存储非结构化