sql - 带有窗口函数的 CASE 语句

表格

有人可以帮助我寻找一种解决方案来使每个商店商品对的计数正确吗? 第一次计数很容易

COUNT (*) OVER(PARTITION BY store ORDER BY s.deptitemcode DESC) StoreItemSeqNo

但是对于第二次计数,我只想要计数,如果每个商店项目对的标志为真,如果标志为假,那么计数应该是先前的值,如果没有先前的值,则计数应该为零。

引用表格示例

最佳答案

聚合函数可以代替 * 也采用表达式。如果 COUNT(..) 是为表达式而不是 * 调用的,它会计算除 NULL 之外的所有内容。所以,根据flag来计数:

COUNT (CASE WHEN flag = 1 THEN flag ELSE NULL END) OVER(PARTITION BY store ORDER BY s.deptitemcode DESC) StoreItemSeqNo

https://stackoverflow.com/questions/49070912/

相关文章:

r - Shiny :在 numericInput 中右键单击时提供上下文菜单?

regex - 如何在Hive SQL中选择具有相同前缀(开始)或后缀(结束)或中间关键字(包括)的

spring - Feign Client - 动态授权 header

android-studio - "APK was defined multiple times",

python - 如何在 Python 中将加权边列表转换为邻接矩阵?

python - "invalid character ' u ' looking for begi

r - 根据最近的日期合并数据 R

php - 创建一个函数来注销 WordPress 用户?

angular - 如何将数据传递给 ng-bootstrap popover

javafx - 如何在 JavaFX 中设置默认关闭操作?