各位好:
现有一问题:表中有三个字段col1,col2,col3,col1是序列字段,现在要根据col2和col3做分组,无解,求助!
例:t_table:
col1  col2 col3
1      A    1
2      A    1
3      B    1
4      B    1
5      C    2
6      C    2
7      A    1
8      A    2
9      B    2
10     B    2
需要将以上表记录分组成:
col1 col2 col3
2     A    1
4     B    1
6     C    2
7     A    1
8     A    2
10    B    2
求解???

解决方案 »

  1.   

    select * from t_table where mod(col1, 2) = 0
      

  2.   

    select max(col1),col2,col3 from t_table
    group by col2,col3
      

  3.   

    就是要按照col2,col3 分组,但是col1 也要显示出来
      

  4.   

    你想要达到的目的是:如果1、2行数据的col2,col3相同就取取, 3、4行数据相同就取第4行,
    7、8行数据col2,col3不相同时,都显示出来?
      

  5.   

    没有什么难度,判断连续的就取最大的,用LEAD或者LEG,我要回老家了,要不就帮你写了
      

  6.   

    楼主:
    你是以col2、col3分组,为什么结果中会出现
    col1 col2 col3 
    2    A    1 4    B    1 
    6    C    2 
    7    A    1 
    8    A    2 
    10    B    2 你的需求到底是怎么的啊?说清楚点!
      

  7.   

    试写了一下,下面这个好像可以,不知道是不是符合你的要求.create table ZH
    (
      COL1 NUMBER,
      COL2 VARCHAR2(10),
      COL3 VARCHAR2(10)
    );
    insert into zh (COL1, COL2, COL3)
    values (5, 'C', '2');insert into zh (COL1, COL2, COL3)
    values (4, 'B', '1');insert into zh (COL1, COL2, COL3)
    values (3, 'B', '1');insert into zh (COL1, COL2, COL3)
    values (2, 'A', '1');insert into zh (COL1, COL2, COL3)
    values (1, 'A', '1');insert into zh (COL1, COL2, COL3)
    values (6, 'C', '2');insert into zh (COL1, COL2, COL3)
    values (7, 'A', '1');insert into zh (COL1, COL2, COL3)
    values (8, 'A', '2');insert into zh (COL1, COL2, COL3)
    values (9, 'B', '2');insert into zh (COL1, COL2, COL3)
    values (10, 'B', '2');select * from zh;
    select col1,col2,col3 from (
    select b.*,
    case when (col2=(select col2 from zh a where a.col1 =b.col1+1) and col3=(select col3 from zh a where a.col1 =b.col1+1) ) then 1 end bz
     from zh b order by col1) where bz is null;