本帖最后由 lisen1987 于 2010-08-24 10:21:31 编辑

解决方案 »

  1.   

    select input_id,
    data_id,
    group_id,
    content_id,
    wm_concat(content) --10g或以上才支持
    from tablename
    group by input_id,
    data_id,
    group_id,
    content_id
      

  2.   

    WITH a AS(
    SELECT '1' t_id,'a' input_id,'a1' data_id,'aew' content,'2' content_id,'g1' group_id FROM dual
    UNION ALL
    SELECT '2' t_id,'a' input_id,'a1' data_id,'xc' content,'1' content_id,'g1' group_id FROM dual
    UNION ALL
    SELECT '3' t_id,'a' input_id,'a2' data_id,'2' content,'1' content_id,'g1' group_id FROM dual
    UNION ALL
    SELECT '4' t_id,'a' input_id,'a2' data_id,'x' content,'1' content_id,'g2' group_id FROM dual
    UNION ALL
    SELECT '5' t_id,'a' input_id,'a1' data_id,'3' content,'1' content_id,'g2' group_id FROM dual
    UNION ALL
    SELECT '6' t_id,'b' input_id,'a1' data_id,'ccc' content,'1' content_id,'g1' group_id FROM dual
    UNION ALL
    SELECT '7' t_id,'b' input_id,'a1' data_id,'222' content,'2' content_id,'g1' group_id FROM dual
    UNION ALL
    SELECT '8' t_id,'b' input_id,'a1' data_id,'cc22' content,'3' content_id,'g1' group_id FROM dual
    UNION ALL
    SELECT '9' t_id,'b' input_id,'a2' data_id,'cxx' content,'1' content_id,'g1' group_id FROM dual
    )
    SELECT input_id , data_id  ,  wm_concat(content) content ,Min(content_id) , group_id
    FROM (
    SELECT a.*,ROWNUM rn FROM a)
    GROUP BY input_id,data_id,group_id
    ORDER BY Min(content_id) ,Min(rn )
    结果:
    input_id  data_id  content cid  group_id
    a a1 aew,xc       1 g1
    a a2 2            1 g1
    a a2 x            1 g2
    a a1 3            1 g2
    b a1 ccc,cc22,222 1 g1
    b a2 cxx          1 g1
      

  3.   

    呵呵,别忘记用replace把逗号去掉
      

  4.   

    自己找了个更好的方法,还是谢谢楼上几位
    http://www.itpub.net/thread-1332147-1-1.html
      

  5.   


    呵呵 ,忘了
    replace(wm_concat(content),',','')