表名:tb_a数据如下
name_id seq_id buy_id sell_id
5156 10 213 123
453 10 2528 85
453 20 2582 78
453 20 254 765
154 20 2528 45
45 30 45 45
45 30 452 45
45 30 45 45以seq_id 分组,group by seq_id,想找出 name_id,seq_id这组数据相同的行如下面name_id seq_id buy_id sell_id
453 20 2582 78
453 20 254 765这第一行 (453,20) = (453,20)第二行 
从上面例子需要显示的表格name_id seq_id buy_id sell_id
453 20 2582 78
453 20 254 765
45 30 45 45
45 30 452 45
45 30 42 45
跪求sql语句,非常感谢!

解决方案 »

  1.   

    首次按照name_id和seq_id进行分组,找出条数大于1的。
    然后依据找出来的name_id和seq_id,查找要找的信息。
    SELECT * FROM  tb_a t
    WHERE (t.name_id,t.seq_id) IN 
    (SELECT t.name_id,t.seq_id FROM  tb_a t
    GROUP BY  t.name_id,t.seq_id
    HAVING COUNT(*)>1 )
      

  2.   


    select *
      from (select *
              from (select seq_id, name_id
                      from test1
                     group by seq_id, name_id
                    having count(1) > 1) a
              left join test1 b
                on a.seq_id = b.seq_id
               and a.name_id = b.name_id)
      

  3.   

    select *
      from (select seq_id, name_id
              from test1
             group by seq_id, name_id
            having count(1) > 1) a
      left join test1 b
        on a.seq_id = b.seq_id
       and a.name_id = b.name_id
    第一次回答的多了外层的一个select不好意思卅。