分组数据运行

Nic*_*ong 7 sql

SQL专家,

有没有一种使用SQL将数据运行组合在一起的有效方法?
或者在代码中处理数据会更有效率.

例如,如果我有以下数据:

ID|Name
01|Harry Johns
02|Adam Taylor
03|John Smith
04|John Smith
05|Bill Manning
06|John Smith
Run Code Online (Sandbox Code Playgroud)

我需要显示这个:

Harry Johns
Adam Taylor
John Smith (2)
Bill Manning
John Smith
Run Code Online (Sandbox Code Playgroud)

@Matt:对不起,我在使用嵌入式html表格格式化数据时遇到了问题,这个表格在预览中有效但不在最终显示中.

Mat*_*ton 2

尝试这个:

select n.name, 
    (select count(*) 
     from myTable n1
     where n1.name = n.name and n1.id >= n.id and (n1.id <=
        (
        select isnull(min(nn.id), (select max(id) + 1 from myTable))
        from myTable nn
        where nn.id > n.id and nn.name <> n.name
        )
     ))
from myTable n
where not exists (
   select 1
   from myTable n3
   where n3.name = n.name and n3.id < n.id and n3.id > (
            select isnull(max(n4.id), (select min(id) - 1 from myTable))
            from myTable n4
            where n4.id < n.id and n4.name <> n.name
            )
)
Run Code Online (Sandbox Code Playgroud)

我想这会做你想做的。不过有点拼凑。

唷!经过几次编辑后,我想我已经解决了所有的边缘情况。