Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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

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 返回连接的num和ordersource的最大数量_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

Sql server 返回连接的num和ordersource的最大数量

Sql server 返回连接的num和ordersource的最大数量,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我想输出格式是 create table test(id int ,num numeric(10),[Ordersource] varchar(10)) insert into test (id,num,[Order])values(1,10,'s1'),(1,10,'s2'),(1,10,'s3'),(1,10,'s4'),(1,12,'s5'),(1,12,'s6'),(2,13,'s6') 希望这会有所帮助 id num ordersource 1 10 s1,s2,s3,s4

我想输出格式是

create table test(id int ,num numeric(10),[Ordersource] varchar(10)) 
insert into test (id,num,[Order])values(1,10,'s1'),(1,10,'s2'),(1,10,'s3'),(1,10,'s4'),(1,12,'s5'),(1,12,'s6'),(2,13,'s6')
希望这会有所帮助

id num ordersource
1 10   s1,s2,s3,s4 
希望这会有所帮助

id num ordersource
1 10   s1,s2,s3,s4 
另一种方法:

Declare @test table (id int ,num numeric(10),[Order] varchar(10)) 
Insert into @test (id,num,[Order])
Values(1,10,'s1'),(1,10,'s2'),(1,10,'s3'),(1,10,'s4'),(1,12,'s5'),(1,12,'s6'),(2,13,'s6')

;With Cte As
(
    Select 
        X.* 
        ,rn=Dense_Rank()over(order by cnt desc)
    From (
    Select  
        id
        , num
        ,ordersource = Stuff((
            Select ',' + Cast([Order] As Varchar(Max))
            From @test t2 
            Where t1.id = t2.id and t1.num = t2.num
            For Xml Path('')
         ),1,1,'')
        ,cnt = count(num) over(partition by id, num)        
    From @test t1)X
)
Select distinct id, num,ordersource
From Cte
Where rn = 1
另一种方法:

Declare @test table (id int ,num numeric(10),[Order] varchar(10)) 
Insert into @test (id,num,[Order])
Values(1,10,'s1'),(1,10,'s2'),(1,10,'s3'),(1,10,'s4'),(1,12,'s5'),(1,12,'s6'),(2,13,'s6')

;With Cte As
(
    Select 
        X.* 
        ,rn=Dense_Rank()over(order by cnt desc)
    From (
    Select  
        id
        , num
        ,ordersource = Stuff((
            Select ',' + Cast([Order] As Varchar(Max))
            From @test t2 
            Where t1.id = t2.id and t1.num = t2.num
            For Xml Path('')
         ),1,1,'')
        ,cnt = count(num) over(partition by id, num)        
    From @test t1)X
)
Select distinct id, num,ordersource
From Cte
Where rn = 1

你的结果集没有任何意义!!!然后,对输出的期望是什么?对不起,一个表有三列id,num,顺序id和num列在表中重复一次,并且顺序源不同。我希望结果集删除重复项,因为每个id都希望返回数字的最大出现次数及其以逗号分隔的顺序。我需要将每个id的顺序值唯一地串联起来,以获得数字的最大出现次数,即此处对于id 1,它必须单独返回数字10。输出必须是1 10 s1、s2、s3、s4。它不应返回12,因为10是最大发生次数。您的结果集没有任何意义!!!然后,对输出的期望是什么?对不起,一个表有三列id,num,顺序id和num列在表中重复一次,并且顺序源不同。我希望结果集删除重复项,因为每个id都希望返回数字的最大出现次数及其以逗号分隔的顺序。我需要将每个id的顺序值唯一地串联起来,以获得数字的最大出现次数,即此处对于id 1,它必须单独返回数字10。输出必须是110 s1,s2,s3,s4。它不应该返回12,因为10是最大发生率。tanx,结果必须是110 s1,s2,s3,s4。它不应该返回12 bcoz。我的情况是,它必须只返回最大发生率。tanx,结果必须是110 s1,s2,s3,s4它不应该返回12 bcoz我的情况是它必须只返回最大发生次数。