求相同字段的数据组

表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(该组的总数)
   

作者: 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