簡體   English   中英

帶分區的SQL Row_Count函數

[英]SQL Row_Count function with Partition

我有一個查詢,它從幾個UNION ALL連接的查詢中以表DATA返回一組結果。

然后,我對此進行ROW_NUMBER() ,以獲取特定分組的行號(WorksOrderNo)

ROW_NUMBER() Over(partition by Data.WorksOrderNo order by Data.WorksOrderNo) as RowNo,

是否有等效的ROW_Count函數可在其中指定分區,並返回該分區的行數?

ROW_Count() Over(partition by Data.WorksOrderNo order by Data.WorksOrderNo) as RowNo ???

原因是,這是用於驅動報表布局的查詢。 為此,我需要根據每個WorksOrderNo的總行數是否大於1進行格式化。

因此,例如,如果一個工單有三行,則row_number函數當前返回1、2和3,其中行數將在每行返回3。

該函數只是COUNT() 在SQL Server中,所有聚集函數都可以用作窗口函數,只要它們不使用DISTINCT

請注意,對於總計數,您不需要ORDER BY

COUNT(*) Over (partition by Data.WorksOrderNo) as cnt

如果包含ORDER BY ,則COUNT()是累積的,而不是分區中所有行的常數。

看來您只需要按group bycount

select WorksOrderNo, count(*) as Row_Count
from Data 
group by WorksOrderNo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM