计算列 SQL 服务器中的相同值

Count same values in column SQL Server

我正在尝试对列中的相同值进行计数,并希望它 return 停止计数。

| ITEM  | COUNT |
+-------+-------+
| GREEN |  1    |
| GREEN |  2    |
| GREEN |  3    |
| RED   |  1    |
| RED   |  2    |

我试过了

ROW_NUMBER() OVER (ORDER BY ITEM) AS Row

但这只计算每行 1 - 1000

我该如何完成?

您需要在 row_number 函数中包含一个 partition by 子句。这使得 row_number 对于每个新类型的项目从 1 重新开始。

ROW_NUMBER() OVER (PARTITION BY ITEM ORDER BY ITEM) AS Row

这会给你这样的结果:

item    Row
GREEN   1
GREEN   2
GREEN   3
RED     1
RED     2

此代码将计算 table

中的相同值
SELECT item, COUNT(*)
FROM Table
Group by item

尝试:

 ROW_NUMBER() OVER (PARTITION BY ITEM ORDER BY ITEM) AS Row

 ROW_NUMBER() OVER (PARTITION BY ITEM ORDER BY COUNT) AS Row

您可以这样计算每个 ITEM

COUNT(*) OVER (PARTITION BY ITEM) As CountByItem