查询以查找具有不同值的多个名称

时间:2016-01-18 13:54:25

标签: sql sql-server

这是我的表我需要两个以上的名字将出现在我的查询中我使用计数,但名称timur有差异公司所以它不能算作1我需要算作2

Name    ID  Company Name    CompanyID   Role Name
Ahmed   73  King & Spalding     55      Counsel
Timur   78  Chance CIS Ltd     39       Partner
Timur   78  Clifford LLP       28       Counsel
Rahail  80  Reed Smith ltd     97       Partner

像这样出来

Name    ID  Company Name    CompanyID   Role Name  count
Ahmed   73  King & Spalding     55      Counsel     1
Timur   78  Chance CIS Ltd     39       Partner     2
Timur   78  Clifford LLP       28       Counsel     2
Rahail  80  Reed Smith ltd     97       Partner     1

3 个答案:

答案 0 :(得分:1)

我假设名称和ID相互匹配。因此,如果不同人员的名称重复,我使用ID进行分区

SELECT 
  *, 
  count(*) over (partition by ID) as [count]
FROM yourtable

答案 1 :(得分:0)

使用相关的子查询:

select t.*, (select count(*) from tablename where name = t.name) as count
from tablename t

答案 2 :(得分:0)

如果您正在使用SQL Server 2005或更高版本,那么您可以使用窗口功能轻松实现此目的:

SELECT
    T.Name,
    T.ID,
    T.CompanyName,
    T.CompanyID,
    T.RoleName,
    COUNT(*) OVER (PARTITION BY T.Name)
FROM
    My_Table T