表 table字段a   b   c1   x   2
1   x   32   y   22   y   3如何返回以 a 分组后 c 最小的值结果是
a   b   c1  x    22  y    2

解决方案 »

  1.   

    你这个b都是一样的select a,b,min(c) c
    from table
    group by a,b
      

  2.   


    a  b  c 1  x  2 
    1  x  3 2  y  2 2  y  3 SQL:select a,b,c from
    (
    select a,b,c,row_number() over(partition by a,b order by a) rn from tt
    )
    where rn=1RESULT:
    a  b  c 1  x    2 2  y    2 
      

  3.   

    create table test_table (a char(2),b char(2),c char(2));
    insert into test_table values ('1','x','2');
    insert into test_table values ('1','x','3');
    insert into test_table values ('2','y','2');
    insert into test_table values ('2','y','3');查询语句一:
    select a,b,c from ( select a,b,c,row_number() over(partition by a,b order by a) rn from test_table) where rn=1;查询语句二:
    select a,b,min(c) c from test_table  group by a,b;结果都一样:
    A  B  C
    -- -- --
    1  x  2
    2  y  2
      

  4.   

    select a,b,min(c) c from test_table  group by a,b; 

    select a,min(b) b,min(c) c from test_table  group by a; 
      

  5.   

    TRY IT ..
    SQL> SELECT *
      2    FROM TABLE T1
      3   WHERE EXISTS (
      4                     SELECT 1
      5                       FROM TABLE T2
      6                      WHERE T1.A = T2.A
      7                        AND T1.C < T2.C
      8                    );         A B          C
    ---------- - ----------
             1 X          2
             2 Y          2SQL> 
      

  6.   

     select a,b,min(c) from tbl
      2  group by a,b;A  B  MIN(C)
    -- -- ------
    1  x  2
    2  y  2SQL>
      

  7.   


    SQL> SELECT *
      2    FROM TABLE T1
      3   WHERE EXISTS (
      4                     SELECT 1
      5                       FROM TABLE 
      6                      WHERE T1.A = A
      7                        AND T1.C < C
      8                    );
    这样就行了