求相同字段的数据组
表tb
id a b c d
1 1 1 1 1
2 1 2 1 1
3 1 2 1 1
4 2 1 1 1
5 3 2 1 1
6 2 1 2 2
7 4 1 1 1
求在表中(现在这7条数据中),a相同的,并且b也相同的,a不用等于b(不用等于不是不等于,是纵向相等不是横向),显示的结果用group组合。
按照要求,上表中,id为2和3的是一组,id为4和6的是一组,如何得出来?
希望的结果的字段有a,b,num(该组的总数)
id a b c d
1 1 1 1 1
2 1 2 1 1
3 1 2 1 1
4 2 1 1 1
5 3 2 1 1
6 2 1 2 2
7 4 1 1 1
求在表中(现在这7条数据中),a相同的,并且b也相同的,a不用等于b(不用等于不是不等于,是纵向相等不是横向),显示的结果用group组合。
按照要求,上表中,id为2和3的是一组,id为4和6的是一组,如何得出来?
希望的结果的字段有a,b,num(该组的总数)
作者: notended 发布时间: 2011-06-11
SQL code
SELECT * FROM TB WHERE EXISTS (SELECT ID FROM TB AS TB1 WHERE a=TB.a AND b=TB.b AND id <>TB.id)
作者: yuerjiajia 发布时间: 2011-06-11
SQL code
SELECT a,b,count(*) AS num FROM TB WHERE EXISTS (SELECT ID FROM TB AS TB1 WHERE a=TB.a AND b=TB.b AND id <>TB.id) GROUP BY a,b
作者: yuerjiajia 发布时间: 2011-06-11
SQL code
SELECT a, b, c, COUNT(id) '总数' FROM tb GROUP BY a, b, c
作者: ForFumm 发布时间: 2011-06-11
SQL code
create table tb(id int,a int,b int,c int,d int) insert into tb select 1,1,1,1,1 insert into tb select 2,1,2,1,1 insert into tb select 3,1,2,1,1 insert into tb select 4,2,1,1,1 insert into tb select 5,3,2,1,1 insert into tb select 6,2,1,2,2 insert into tb select 7,4,1,1,1 go select * from tb a where exists(select * from tb where id<>a.id and a=a.a and b=a.b) /* id a b c d ----------- ----------- ----------- ----------- ----------- 2 1 2 1 1 3 1 2 1 1 4 2 1 1 1 6 2 1 2 2 (4 行受影响) */ go drop table tb
作者: qianjin036a 发布时间: 2011-06-11