SQL添加一列,提供当前行客户编号的总计数

时间:2014-10-24 16:38:44

标签: sql sql-server count querying

我有一张表:

 KEY    CUST#     WAREHOUSE    ERRORMESSAGE  
 1      111       OH           Carton Error
 2      222       KY           Ship Error
 3      111       OH           Ship Error
 4      111       KY           Ship Error
 5      333       KY           Invalid Customer

我想添加一列,提供具有相同客户编号的行总数。因此,对于我们的示例表,我们将:

  KEY    CUST#     WAREHOUSE    ERRORMESSAGE       CUSTCOUNT
  1      111       OH           Carton Error       3
  2      222       KY           Ship Error         1
  3      111       OH           Ship Error         3
  4      111       KY           Ship Error         3
  5      333       KY           Invalid Customer   1

有人能指出我正确的方向来实现这一目标吗?非常感谢你的时间。

2 个答案:

答案 0 :(得分:1)

您可以使用OVER子句:

SELECT *,
       COUNT(*) OVER(PARTITION BY [CUST#]) CUSTCOUNT
FROM dbo.YourTable

答案 1 :(得分:0)

我认为这不是好设计,因为每次插入行都需要更新。相反,您应该在查询中使用它。