比如有一个表
PNO SERIAL Score
A 1 30
A 2 100
A 3 150
A 4 50
A 7 120
A 8 200
A 12 100
B 1 200
B 2 200
想通过一个sql得到下面结果,按照PNO,汇总SERIAL连续的 SUM(Score)
PNO START END SUM(Score)
A 1 4 330
A 7 8 320
A 12 12 100
B 1 2 400想了好久没想出来。请求高人!
PNO SERIAL Score
A 1 30
A 2 100
A 3 150
A 4 50
A 7 120
A 8 200
A 12 100
B 1 200
B 2 200
想通过一个sql得到下面结果,按照PNO,汇总SERIAL连续的 SUM(Score)
PNO START END SUM(Score)
A 1 4 330
A 7 8 320
A 12 12 100
B 1 2 400想了好久没想出来。请求高人!
解决方案 »
- RAC一个节点有问题,另一个节点上的job怎么不跑了?
- oracle语句中是否是大小写敏感的。oracle在解析select field from table和SELECT FIELD FROM TABLE 这两个语句时有区别吗?
- 帮忙...谁帮给我一下函数~~~急
- 个人卖 ORACLE数据库精讲与疑难解析
- 高难度得SQL,求救!(在字符型得结果中取数字)
- 在命令行方式下连接oracel出错
- 修改数据库中的字段
- 利用sql 语句来检查以两个以上字段作为key的duplicate问题,请教各位,谢谢
- ***如何实现一个字段在添加时自动加1呢???***
- 求一条SQL,可以多种方案,多多学习,能实现就有分!
- 谁能告诉我oas的jvm内存怎么调啊
- (30分)在同一个表中以不同条件查询数据并放在同一视图中!
FROM (SELECT T1.PNO,
T1.SERIAL,
SUM(SCORE) OVER(PARTITION BY(SERIAL - ROWNUM)) SCORE,
SERIAL - ROWNUM TEMP
FROM (SELECT * FROM TT ORDER BY PNO, SERIAL) T1) T2
GROUP BY pno,temp,score
ORDER BY PNO;
强悍!!
这个都能想得出来
佩服啊佩服
漏了PARTITION BY pno了,加上,否则会出错:
SELECT pno,MIN(serial) "START",MAX(serial) END,score
FROM (SELECT T1.PNO,
T1.SERIAL,
SUM(SCORE) OVER(PARTITION BY pno, (SERIAL - ROWNUM)) SCORE,
SERIAL - ROWNUM TEMP
FROM (SELECT * FROM TT ORDER BY PNO, SERIAL) T1) T2
GROUP BY pno,temp,score
ORDER BY PNO;