昨天问过类似的,大家给了很好的答复,但是我忘了一个关键的地方:
如果字段A与B相同,那么将C的内容合并,并将其他的删除,例如:
A B C
1 2 3
1 3 4
1 2 5
1 2 6
2 3 7
2 3 8
2 4 9
处理后剩余:
1 2 356
1 3 4
2 3 78
2 4 9
大家都给了答案:
select a,b,replace(wm_concat(c),',','')
from tablename
group by a,b现在是:
有四列,前面三列都相同,第四列d是时间,
A,b ,c 功能和以前的一样,但是要保留一个时间就可以了,符合group a,b 的任何一个行的时间都可以。
select a,b ,,replace(wm_concat(c),',',''), d ........让我抓狂啊。谢谢。
如果字段A与B相同,那么将C的内容合并,并将其他的删除,例如:
A B C
1 2 3
1 3 4
1 2 5
1 2 6
2 3 7
2 3 8
2 4 9
处理后剩余:
1 2 356
1 3 4
2 3 78
2 4 9
大家都给了答案:
select a,b,replace(wm_concat(c),',','')
from tablename
group by a,b现在是:
有四列,前面三列都相同,第四列d是时间,
A,b ,c 功能和以前的一样,但是要保留一个时间就可以了,符合group a,b 的任何一个行的时间都可以。
select a,b ,,replace(wm_concat(c),',',''), d ........让我抓狂啊。谢谢。
SELECT 1 a, 2 b, 3 c ,SYSDATE d FROM dual UNION ALL
SELECT 1, 3, 4,SYSDATE-1 FROM dual UNION ALL
SELECT 1, 2, 5,SYSDATE-2 FROM dual UNION ALL
SELECT 1, 2, 6,SYSDATE-3 FROM dual UNION ALL
SELECT 2, 3, 7,SYSDATE-4 FROM dual UNION ALL
SELECT 2, 3, 8,SYSDATE-5 FROM dual UNION ALL
SELECT 2, 4, 9,SYSDATE-6 FROM dual
)
select a,b,replace(wm_concat(c),',',''),Max(d) d
from tablename
group by a,bA B C D
-------------------------------
1 2 356 2010.11.05 08:37:33
1 3 4 2010.11.04 08:37:33
2 3 78 2010.11.01 08:37:33
2 4 9 2010.10.30 08:37:33
select a,b,replace(wm_concat(c),',',''),max(d)
from tablename
group by a,b