对mygame表中game和userid相同记录进行去重
已知一张表中数据如下:
id            game            userid
1              a                   111
3              a                   111
5              b                   222
6             b                   222
7             c                   222
8              d                  111
9              a                  111
去重后得到:
id            game            userid
6              b                 222
7             c                  222
8            d                  111
8            a                  111请写出SQL语句
   

解决方案 »

  1.   

    (1)
    select  a.id,a.game,a.userid from table a where a.rowid >= (select max(b.rowid) from table b where b.game=a.game and b.userid=a.userid)(2)
    select * from (
    select a.*,DENSE_RANK() over (partition by a.game,a.userid order by a.id desc) rn from table a
    )
    where rn=1
      

  2.   

    group by一下吧
      

  3.   

    select * from mygame where id in (select max(id) from mygame group by game) order by id;
      

  4.   

    少了一个userid
    select * from mygame where id in (select max(id) from mygame group by game,userid) order by id;
      

  5.   

    去重后的ID,获取规则是什么。
    SELECT MIN(id),game,userid FROM mygame GROUP BY game,userid 
      

  6.   

    SELECT MAX(id),game,userid FROM mygame GROUP BY game,userid