小编goi*_*elg的帖子

如何在 SQL Server 中使用带框架的窗口函数执行 COUNT(DISTINCT)

搭载这个可爱的问题: 分区函数 COUNT() OVER possible using DISTINCT

我希望计算不同值的移动计数。大致如下:

Count(distinct machine_id) over(partition by model order by _timestamp rows between 6 preceding and current row)

显然,SQL Server不支持该语法。不幸的是,我不太了解(没有内部化会更准确)dense_rank 绕行是如何工作的:

dense_rank() over (partition by model order by machine_id) 
+ dense_rank() over (partition by model order by machine_id) 
- 1
Run Code Online (Sandbox Code Playgroud)

因此我无法调整它来满足我对移动窗口的需求。如果我按 machine_id 订购,是否也可以按 _timestamp 订购并使用rows between

sql sql-server count dense-rank window-functions

3
推荐指数
1
解决办法
7579
查看次数

标签 统计

count ×1

dense-rank ×1

sql ×1

sql-server ×1

window-functions ×1