计算列 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
我正在尝试对列中的相同值进行计数,并希望它 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