如何查出这个值
我有一张表 id shuzi
1 93.5
2 82.5
3 76.5
4 65
5 54
6 63.5
7 70.5
8 53.5
9 58.5
10 68.5
如何能查找相邻3个id号所对应的sum值最大呢
(1,2,3)(2,3,4)(3,4,5)。。。
[解决办法]
SELECT MAX(a) FROM (
SELECT SUM(a) a FROM person WHERE ID<4
UNION SELECT SUM(a) a FROM person WHERE ID<5 AND ID>1
UNION SELECT SUM(a) a FROM person WHERE ID<6 AND ID>2
UNION SELECT SUM(a) a FROM person WHERE ID<7 AND ID>3
……………………………………………………………………………………
UNION SELECT SUM(a) a FROM person WHERE ID<11 AND ID>7
)
WITH tb AS (
SELECT 1 id,93.5 shuzi FROM DUAL UNION ALL
SELECT 2 id,82.5 shuzi FROM DUAL UNION ALL
SELECT 3 id,76.5 shuzi FROM DUAL UNION ALL
SELECT 4 id,65.5 shuzi FROM DUAL UNION ALL
SELECT 5 id,54.5 shuzi FROM DUAL
)
SELECT MAX(n.seq_id) KEEP(dense_rank FIRST ORDER BY sum_shuzi DESC) seq_id,
MAX(n.sum_shuzi) sum_shuzi
FROM (
SELECT MAX(m.seq_id) seq_id,
SUM(m.shuzi) sum_shuzi
FROM (SELECT t.*,
CONNECT_BY_ROOT(t.ID) root,
'('
[解决办法]
SUBSTR(SYS_CONNECT_BY_PATH(t.ID, ','), 2)
[解决办法]
')' seq_id,
LEVEL lv
FROM tb t
CONNECT BY PRIOR t.ID = t.ID - 1
AND LEVEL <= 3) m
GROUP BY m.root
HAVING MAX(m.lv) = 3
) n
SEQ_ID SUM_SHUZI
-------------------------------------------- ----------
(1,2,3) 252.5