【发布时间】:2015-05-07 08:02:52
【问题描述】:
我需要帮助才能找到在 SQL Server 中执行以下操作的方法。
基本上,在 Excel 中,我可以编写如下内容:
IF(COUNTIF(A:A:A2) > 1:1:0))
此 Excel 代码的作用是,如果 IT 在客户编号列中找到重复的客户编号,则公式返回 1,否则返回 0。
我在我的代码中包含了这个
Select
Contract_nr,
Customer_number,
Rank()OVER(ORDER BY customer_number) AS tester
Productname,
Sales_date
From
table namn
rank() 返回 1100、1105 等等...
如果客户编号重复,我如何才能使我的测试列返回 1 或 0?
【问题讨论】:
-
如果您想获得不同的计数,请尝试“从表名中选择计数(不同的客户编号)...”
-
使用适当的软件(MySQL、Oracle、DB2...)和版本标记数据库问题很有帮助,例如
sql-server-2014。语法和功能的差异通常会影响答案。LAG/LEAD可能会有所帮助,但这取决于数据库和版本。 -
还可以查看将重置字段数字的 PARTITION 关键字。 msdn.microsoft.com/en-us/library/ms189461.aspx
-
有趣。如何在 SQL Server 2012 中解决这个问题?添加此测试器列以显示客户编号是否重复的目的是查看客户是否购买了多个产品。通常我在excel中这样做。在 SQL Server 2012 中这样做会很棒
标签: sql-server tsql rank