ORACLE SQL思路: 多行数据有相同字段就合并成一条数据 分页展示

数据

分数表:

学号,科目名(A,B,C),分数

需求

分页列表展示, 如果一个学号的科目有相同的分数, 合并成一条数据,用 + 拼接 科目名

ORACLE SQL 实现

sql 复制代码
SELECT Z.*,
SUBSTR(
	DECODE(fa.科目,null,'','+'||fa.科目)
|| DECODE(fb.科目,null,'','+'||fb.科目)	
|| DECODE(fc.科目,null,'','+'||fc.科目)	
,2 ) as 学科组合名称
FROM (
SELECT A.* FROM    (
SELECT 学号,分数  , ROW_NUMBER() OVER (order by 分数 desc,学号 ) as rn
FROM 分数表 WHERE ....  GROUP BY 学号 , 分数 
					)  A WHERE  A.rn BETWEEN 分页开始行 AND 分页结束行
)Z
	LEFT JOIN 分数表 fa ON fa.学号=Z.学号 AND fa.科目='A' AND fa.分数 =Z.分数
	LEFT JOIN 分数表 fb ON fb.学号=Z.学号 AND fb.科目='B' AND fb.分数 =Z.分数
	LEFT JOIN 分数表 fc ON fc.学号=Z.学号 AND fc.科目='C' AND fc.分数 =Z.分数
ORDER BY Z.分数 asc, Z.学号			
	

转换

如果相同字段是 天数差

sql 复制代码
, ( TRUNC(Z.时间) - TRUNC(to_date('2024-12-09', 'YYYY-MM-DD')) ) as 相差天数
相关推荐
JosieBook2 分钟前
【数据库】为何“端边云”协同架构正在重塑大数据存储格局?
大数据·数据库·架构
SPC的存折4 分钟前
3、MySQL数据库主从复制
linux·运维·服务器·数据库·mysql
眷蓝天11 分钟前
MySQL数据库主从复制+MaxScale读写分离
数据库·mysql
实证小助手11 分钟前
最新上市公司2011-2024年面板数据
数据库·论文笔记
一 乐11 分钟前
非遗文化传承网站|基于springboot + vue非遗文化传承网站系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·非遗文化传承网站
祢真伟大17 分钟前
TranswarpArgoDB9.4星环数据库部署
数据库
XDHCOM21 分钟前
ORA-13045报错解析,科普兼容性标志,故障修复与远程处理指南
数据库·oracle
Elastic 中国社区官方博客24 分钟前
如何使用 Mastra 和 Elasticsearch 构建具备代理能力的 AI 应用
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
fundoit25 分钟前
MySQL插入数据遇到唯一键已存在怎么办?
android·数据库·mysql
晴天¥27 分钟前
Oracle中如何生成AWR报告并进行分析
数据库·oracle