sql - 遇到产品时增加行号 - T SQL - 单个查询(不允许多个语句)
问题描述
有一张像下面这样的表格
ID Vals
1 Product
2 Milk
3 Butter
4 Cheese
5 Yogurt
6 Product
7 Muesli
8 Porridge
9 Product
10 Banana
需要的输出如下
RWNUM ID Vals
1 1 Product
1 2 Milk
1 3 Butter
1 4 Cheese
1 5 Yogurt
2 6 Product
2 7 Muesli
2 8 Porridge
3 9 Product
3 10 Banana
每次遇到 Product 时,RWNUM 列的值都会加一。
这需要在单个 TSQL 查询中实现。
欢迎任何想法。
解决方案
看起来您想要“产品”的累积总和:
select t.*,
sum(case when val = 'Product' then 1 else 0 end) over (order by id) as rwnum
from t;
推荐阅读
- c++ - 在 vscode C/C++ 中覆盖智能感知的默认 includePath
- c++ - 堆损坏和其他问题
- javascript - 如何使用 jQuery 效果作为函数属性
- typescript - TypeScript:'string | 类型的参数 number' 不可分配给“number”类型的参数
- swift - 从框架加载 nib 文件时出现 NSInternalInconsistencyException
- swiftui - ObservableObject 中的@Published 和普通 AnyPublisher 属性有什么区别
- java - 无法访问资源文件夹中的文件
- java - 带有 XMLStreamReader 和 StreamFilter 的 JAXB 未完成
- r - 创建动态标签面板
- python - Python tkinter - TypeError - 'str' 对象不能解释为整数