Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 添加计算每个项目的列_Sql_Sql Server - Fatal编程技术网

Sql 添加计算每个项目的列

Sql 添加计算每个项目的列,sql,sql-server,Sql,Sql Server,我有一个列表,其中有一些项目,如it、it、销售、it、市场、销售、市场等部门名称 我如何添加另一列,按以下方式计算每个部门的名称,基本上每个项目都有自己的计数 比如说 name added column IT, 1 IT, 2 Sale, 1 IT, 3 Market, 1 Sale, 2 知道我该如何实现吗?编辑:根据您的请求,我添加了SQL Server的答案 SQL Server: SELECT

我有一个列表,其中有一些项目,如it、it、销售、it、市场、销售、市场等部门名称

我如何添加另一列,按以下方式计算每个部门的名称,基本上每个项目都有自己的计数

比如说

   name   added column
    IT,     1 
    IT,     2
    Sale,   1
    IT,     3
    Market, 1
    Sale,   2

知道我该如何实现吗?

编辑:根据您的请求,我添加了SQL Server的答案

SQL Server:

SELECT 
  name,
  ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Name) As AddedColumn
FROM YourTable
MYSQL:

SELECT 
  name,
  ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Name) As AddedColumn
FROM YourTable

SELECT 
    @row_number:=CASE
        WHEN @name = name THEN @row_number + 1
        ELSE 1
    END AS num,
    @name:=name as name
FROM
    YourTable
ORDER BY name;

为什么投反对票??如果我需要添加内容,请告诉我。您有ID字段吗?我没有给你投反对票(虽然我同意如果你投反对票,你应该解释原因),但我认为应该有更多的背景。这个解决方案的目的是什么?您是否真的想要一个计数或某种排序,如您在示例输出中所演示的那样?你已经试过什么了?你要找的是@Matthew,你说每个项目都有自己的计数,但是在你的例子中,相同的项目有单独的计数。为什么输出中多次出现“IT”和“Sale”的计数不同?您知道我如何在microsoft sql server management studio中做到这一点吗?@Matthew我已更新了我的答案。你是我的第一个答案,你是最好的。非常感谢,你为我节省了很多时间。