怎么把ID相同的数据合并成一行了 着急啊,求大神

0

gggg.jpg

表的格式就是这样的。
ZYH    DM  

想要的效果是
  如果ZYH 号码跟ZYH号码相等则,DM 想后排列。
 例如 0000374445 这个号码跟下面的相等 则DM 想后排列
  
想要的数据是 
  ZYH                        DM                   DM 1
 0000374902          50.24001                        
 50.24001                33.231  
 0000374445           74.3 002         74.1 002
 0000376096           41.381            41.2   
 0000374460           33.231  
 查询的结果是表格形式的,DM 和DM1是表格的,中间不是逗号分开的。
   
 最后给出SQL代码加上分析 注解 谢谢
已邀请:
0

tianwaifeixian - 生意人 2015-12-03 回答

感谢大家的帮忙啊。
SELECT tt.zyh,
MAX(DECODE(rn,1,dm,NULL)) dm,
MAX(DECODE(rn,2,dm,NULL)) dm1
FROM
(SELECT t.*,
row_number() OVER(PARTITION BY zyh ORDER BY zyh) rn
FROM t) tt
GROUP BY tt.zyh;
0

- 取是能力,舍是境界 2015-12-02 回答

你这类问题属于行转列。那么要确认的问题有几个,
1、ZYH 重复最多有几个,能确定不?
2、重复的一定日期不相同,还是有可能日期相同。    
0

郑大鹏 2015-12-02 回答

Group by  
MAX 
 
不能解决吗?
0

gogodiy - 天善智能数据库专家、Tableau爱好者 2015-12-03 回答

如果是MSSQL的话,一段动态SQL就搞定了,ORACLE不会。
0

haibin1999 2015-12-15 回答

select   deptno,  wmsys.wm_concat( ename)   from EMP t  group by deptno

要回复问题请先登录注册