Sql server T sql按查找相同的值和顺序
我的表Sql server T sql按查找相同的值和顺序,sql-server,Sql Server,我的表Customer包含以下列: sales_ID varchar(50) product_ID int ProcessNumber int CreateDate datetime 以下是示例数据: sales_Id product_id ProcessNumber --------------------------------------------- 00000020041 1733 15 00000020041 173
Customer
包含以下列:
sales_ID varchar(50)
product_ID int
ProcessNumber int
CreateDate datetime
以下是示例数据:
sales_Id product_id ProcessNumber
---------------------------------------------
00000020041 1733 15
00000020041 1733 15
00000020041 1733 15
问题:
如果我使用这个查询
select *
from
(select
*,
row_number() over(PARTITION BY sales_Id, product_ID, ProcessNumber
ORDER BY xdate) rown
from Customer) tbl
where
rown > 1
order by
sales_ID
结果:
1. 00000020041 1733 15
但我希望查询显示此结果
1. 00000020041 1733 15
2. 00000020041 1733 15
3. 00000020041 1733 15
根据选择所有重复值(2行、3行、4行…)在我的查询中更改哪些内容?将行数()更改为计数(*)更改为()
SELECT *
FROM ( SELECT *,
CountOfRowsInGroup = COUNT(*) OVER (
PARTITION BY sales_Id,product_ID,ProcessNumber)
FROM Customer
) AS tbl
WHERE CountOfRowsInGroup > 1
ORDER BY Sales_ID;
这将返回所有重复的查找秩和密集秩。我最好重写一下,因为这是误导性的:如果你有3个重复的排名记录,可能编号为1,1,1,4,5,6等。如果你有3个重复的密集排名,你会得到1,1,1,2,3,4等