SQL专家
是否有使用SQL将数据运行分组在一起的有效方法? 还是用代码处理数据会更有效。
例如,如果我有以下数据:
ID|Name 01|Harry Johns 02|Adam Taylor 03|John Smith 04|John Smith 05|Bill Manning 06|John Smith 我需要显示以下内容:
Harry Johns Adam Taylor John Smith (2) Bill Manning John Smith @Matt:对不起,我无法使用在预览中有效但无法在最终显示中使用的嵌入式html表格格式化数据。
sql
问题来源于stack overflow
尝试这个:
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 ) ) 我想那会做你想要的。虽然有点纠结。
!经过几次编辑后,我认为我已经整理了所有边缘情况。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。