OWS*_*Sam 1 sql t-sql sql-server window-functions
我有一个查询DATA,从一些UNION ALL连接的查询返回一组结果作为一个表调用.
我正在做ROW_NUMBER()这个,以获取特定分组的行号(WorksOrderNo)
ROW_NUMBER() Over(partition by Data.WorksOrderNo order by Data.WorksOrderNo) as RowNo,
Run Code Online (Sandbox Code Playgroud)
是否存在ROW_Count可以指定分区的等效函数,并返回该分区的行数?
ROW_Count() Over(partition by Data.WorksOrderNo order by Data.WorksOrderNo) as RowNo ???
Run Code Online (Sandbox Code Playgroud)
原因是,这是用于驱动报表布局的查询.作为其中的一部分,我需要根据每个WorksOrderNo的总行数是否大于1进行格式化.
因此,例如,如果工作订单有三行,则该row_number函数当前返回1,2和3,其中行计数将在每行返回3.
功能很简单COUNT().在SQL Server中,所有聚合函数都可以用作窗口函数,只要它们不使用即可DISTINCT.
请注意,对于总计数,您不希望ORDER BY:
COUNT(*) Over (partition by Data.WorksOrderNo) as cnt
Run Code Online (Sandbox Code Playgroud)
如果包含ORDER BY,COUNT()则为累积,而不是分区中所有行的常量.
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |