IDa 都不一样,IDb是另一张表的外键,我想取IDb一样的情况下,IDa最小的数据。结果如下图求SQL语句完全没思路各路大神素来~~

解决方案 »

  1.   

    SELECT  *
    FROM    tb a
    WHERE   EXISTS ( SELECT 1
                     FROM   ( SELECT    comunidb ,
                                        MAX(columnida) columnida
                              FROM      tb
                              GROUP BY  comunidb
                            ) b
                     WHERE  a.columnida = b.columnida
                            AND a.comunidb = b.comunidb )
      

  2.   

    这样行吗
    select a,b,c,d,min(status),min(ida),min(idb) from table1
    group by a,b,c,d
      

  3.   

    SELECT *
    FROM (
    SELECT *
    ,ROW_NUMBER() OVER (PARTITION BY IDB ORDER BY IDA) AS NUM
    FROM TB
    ) T WHERE NUM=1
      

  4.   


    select * from (
    select min(ColumnIda) over (PARTITION BY ColumnIdb) as newid1,* from table1
    )a where a.newid1 = a.ColumnIda order by ColumnIda