如题
表S  要统计的字段为A 
两个限制条件的字段为B和C 
B的限制的内容是在表中统计B有相同值的数量 
再从这个数量里统计出C相同的数量。
SELECT A FROM S WHERE
B = (SELECT B ,COUNT(1)AS "B相同的数量" FROM S GROUP BY B)
AND 
C = (SELECT C ,COUNT(1)AS "C相同的数量" FROM S GROUP BY C)得出的结果是值过多。这怎么解决啊

解决方案 »

  1.   

    值过多的意思是 你的等式=左右不相等  =左右必须都是一个值! 而明显你的B = (SELECT B ,COUNT(1)AS "B相同的数量" FROM S GROUP BY B)
    =右边有2个值。
    C = (SELECT C ,COUNT(1)AS "C相同的数量" FROM S GROUP BY C)也一样的错误。
      

  2.   

    说这人都是晕的  能列举具体数据看看么?   这意思? SELECT A 
    FROM S t1 WHERE
    B = (SELECT COUNT(1) AS "B相同的数量" FROM S where B=t1.B)
      

  3.   

    那这个从B相同的数量中按照C相同的数量分组查询出A来该怎么解决啊
      

  4.   

    那这个从B相同的数量中按照C相同的数量分组查询出A来该怎么解决啊
      

  5.   

    SELECT A 
    FROM S t1 WHERE
    B = (SELECT COUNT(1) AS "B相同的数量" FROM S where B=t1.B)好像在一直循环啊
      

  6.   

    表S 
    A VARCHER(2)
    B VARCHER(2)
    C NUNBER(20,30)
    表中的数据有很多值是重复的,其中就会有A相同andB相同andC相同的记录
    我想要的就是统计出这三个都相同的有多少条记录
      

  7.   

    这个意思?create table t1 (t_id number(10),a varchar2(10),b varchar2(10),c varchar2(10));insert into t1 values (1,'1','2','3');
    insert into t1 values (2,'4','5','6');
    insert into t1 values (3,'1','2','3');
    insert into t1 values (4,'1','3','3');
    insert into t1 values (5,'2','2','3');
    insert into t1 values (6,'1','2','3');
    insert into t1 values (7,'1','3','3');select a,b,c,max(d) 重复数量 from
    (select a,b,c,rank() over(partition by a,b,c order by t_id) d
    from t1)
    group by a,b,c
    a   b   c   重复数量
    ---------------------------------------
    1 2 3 3
    1 3 3 2
    2 2 3 1
    4 5 6 1
      

  8.   

    只是要一个总计的话,不用这么麻烦。select count(*) from table 
      where rowid not in (
             select max(rowid) from table
             group by a,b,c)