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

sx_zyb 2015-12-02 11:02:51


表的格式就是这样的。
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代码加上分析 注解 谢谢
...全文
2899 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
csliu_cool887 2015-12-10
  • 打赏
  • 举报
回复
有待改进,能实现动态 SELECT * FROM( SELECT ZYH,DM,ROW_NUMBER()OVER(PARTITION BY ZYH ORDER BY ROWNUM) AS RN FROM TEST_001) A PIVOT( MAX(DM) AS DM FOR RN IN( 1 , 2, 3 ) );
z123zjf 2015-12-04
  • 打赏
  • 举报
回复
不知道确切的列数,无法实现的需求吧。 可能pl/sql能做
jdsnhan 2015-12-04
  • 打赏
  • 举报
回复
Lead(exp_str,offset,defval) over() offset是偏移几行,随意偏移几行都可以。 最大的问题是,难道你确定有多少行重复的?或者说,动态展示的列不知道有多少个?
jdsnhan 2015-12-03
  • 打赏
  • 举报
回复
也可以这样 select id, num, num1 from (select id, num, lead(num, 1, null) over(partition by id order by id) num1 from tlead1) aa where rowid in (select min(rowid) from tlead1 bb where aa.id = bb.id)
sinat_18597213 2015-12-03
  • 打赏
  • 举报
回复
只是用了部分数据 WITH t AS ( SELECT 0000374445 zyh, '74.3 002' DM, '2015/2/2' sj FROM dual UNION SELECT 0000374445 zyh, '74.1 002' DM, '2015/2/2' sj FROM dual UNION SELECT 0000376096 zyh, '41.381' DM, '2015/2/3' sj FROM dual UNION SELECT 0000376096 zyh, '41.21' DM, '2015/2/5' sj FROM dual UNION SELECT 0000374460 zyh,'33.231' DM, '2015/2/5' sj FROM dual ) 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;
JuanRiquelme 2015-12-03
  • 打赏
  • 举报
回复
WITH T AS (SELECT 0000374445 ZYH, '74.3 002' DM, '2015/2/2' SJ FROM DUAL UNION SELECT 0000374445 ZYH, '74.1 002' DM, '2015/2/2' SJ FROM DUAL UNION SELECT 0000376096 ZYH, '41.381' DM, '2015/2/3' SJ FROM DUAL UNION SELECT 0000376096 ZYH, '41.21' DM, '2015/2/5' SJ FROM DUAL UNION SELECT 0000374460 ZYH, '33.231' DM, '2015/2/5' SJ FROM DUAL) SELECT ZYH, MAX(DM) AS DM, MIN(DM) AS DM1 FROM T GROUP BY ZYH
sx_zyb 2015-12-03
  • 打赏
  • 举报
回复
2楼的,是写死的代码,我的数据量很大的,这种办法不现实的
3楼的,你这个虽然是实现的。但是只能去2中情况的


麻烦3楼在给讲解下哈
这个lead 只能取偏移量的也就是说只能取下一个数的
这么循环取完所以的6个了
lhdz_bj 2015-12-02
  • 打赏
  • 举报
回复
嗯,去搜下行转列的话题吧。
内容概要:本文围绕“新型电力系统下多分布式电源接入配电网承载力评估方法”的研究,系统性地介绍了基于Matlab的仿真建模与代码实现方案,旨在评估高比例分布式电源(如光伏、风电等)接入背景下配电网的接纳能力。研究融合了智能优化算法(如蜣螂优化、灰狼优化、遗传算法)、多目标优化、鲁棒优化及双层优化模型,结合潮流计算、稳定性分析与故障仿真,构建了完整的承载力评估体系。文档不仅提供核心算法实现,还拓展至微电网调度、储能配置、电氢耦合系统、电动汽车协同等前沿方向,强调“复现+创新”相结合的科研路径,助力研究者快速掌握高水平论文复现技巧并激发原创思路。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事科研或工程应用的研究生及初级科研人员(工作1-3年);; 使用场景及目标:①复现高水平期刊中关于配电网承载力的优化模型;②开展高比例可再生能源接入下的配电网规划与运行研究;③学习并应用智能优化算法解决复杂电力系统问题;④获取完整科研资源包以加速课题进展与论文撰写; 阅读建议:建议读者关注公众号“荔枝科研社”获取网盘资源,下载全套代码与模型文件,按照文档结构循序渐进学习,重点理解算法设计逻辑与仿真建模细节,结合所提供的复现案例深化对优化模型与工程应用场景的理解,提升科研效率与创新能力。

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧