Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 统计详细记录并在sql server的新列中显示_Sql Server_Sql Server 2008_Sql Server 2008 R2_Sql Server 2012 - Fatal编程技术网

Sql server 统计详细记录并在sql server的新列中显示

Sql server 统计详细记录并在sql server的新列中显示,sql-server,sql-server-2008,sql-server-2008-r2,sql-server-2012,Sql Server,Sql Server 2008,Sql Server 2008 R2,Sql Server 2012,我使用的是SQLServer2008,其中有一些问题,我找不到一列 TblMaster ID Name City 1 Hiren Juanagadh 2 Ashish Gandhinagar 2 Mayur Ahmedabad 3 Hitesh Junagadh 4 Nipun Ahmedabad 4 Vivek Rajk

我使用的是SQLServer2008,其中有一些问题,我找不到一列

TblMaster 
  ID      Name      City     
  1       Hiren     Juanagadh
  2       Ashish    Gandhinagar
  2       Mayur     Ahmedabad
  3       Hitesh    Junagadh
  4       Nipun     Ahmedabad
  4       Vivek     Rajkot
  4       Samir     Surat
  5       Sagar     Vadodara
现在我需要另一列CountId,所以我需要如下输出

TblMaster 
  ID      Name      City           CountId 
  1       Hiren     Juanagadh       0
  2       Ashish    Gandhinagar     2
  2       Mayur     Ahmedabad       2
  3       Hitesh    Junagadh        0
  4       Nipun     Ahmedabad       3
  4       Vivek     Rajkot          3
  4       Samir     Surat           3
  5       Sagar     Vadodara        0
表示如果Id列只有一个,则CountId=0 如果Id列不止一个,那么CountId=Idcolumn的计数尝试以下查询:

select *,(case when (select count(id) from TblMaster )=1 
          then 0 else (select count(id) from TblMaster) end) as count 
from tblmaster
备桌

declare @T table ( 
           id int, 
           Name nvarchar(6), 
           City nvarchar(20))

insert @T values 
(  1 ,      'Hiren',     'Juanagadh'),
(  2 ,      'Ashish',    'Gandhinagar'),
(  2 ,      'Mayur',     'Ahmedabad'),
(  3 ,      'Hitesh',    'Junagadh'),
(  4 ,      'Nipun',     'Ahmedabad'),
(  4 ,      'Vivek',     'Rajkot'),
(  4 ,      'Samir',     'Surat'),
(  5 ,      'Sagar',     'Vadodara')
Select语句

无1->0修正

SELECT *, CountID  = count(*) over (Partition by ID)
from @T
select id, Name,City,CountID =  case when CountID = 1 then 0 else CountID end
 from (
SELECT *, CountID  = count(*) over (Partition by ID)
from @T )

RES
带1->0修正

SELECT *, CountID  = count(*) over (Partition by ID)
from @T
select id, Name,City,CountID =  case when CountID = 1 then 0 else CountID end
 from (
SELECT *, CountID  = count(*) over (Partition by ID)
from @T )

RES