请问这个sql查询该怎么实现?

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
有个表test1:
idpidd1(number)
AB1
BC2
CD2
DE3
EF2
如何通过查询得到这个结果:
A B 1
B C 2
C D 4
D E 12
E F 24


回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
up
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
la
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
我只能看出每一个是前面数值的乘积,用什么查询语句还没想出来!不知道有没有想sum()这样的求积函数。
帮你up!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
TO: TonnyHot
对,就是这个意思。 谢谢!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
不是吧!!!被打败了
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
可以實現的1
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
變成如下
COLUMN1COLUMN2COLUMN3COLUMN4
1 A B 1
2 B C 2
3 C D 2
4 D E 3
5 E F 2
select A.COLUMN1,A.COLUMN2,A.COLUMN3,
(A.COLUMN4*B.COLUMN4)OVER(ORDER BY A.COLUMN1)
FROMTABLE a,TABLE b
where a.COLUMN1=b.COLUMN1-1
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
TO:ccbzzp

SQL> select id,pid,d1,d2 from test order by d2;
ID PID
D1 D2
-------- -------- ---------- ----------
ab
1
1
bc
2
2
cd
2
3
de
3
4
ef
2
5
已用时间:00: 00: 00.80
SQL>select A.d2,A.id,A.pid,
2 (A.d1*B.d1)OVER(select d2 from test A ORDER BY A.d2)
3 FROM test A,test B
4 where a.d2=(b.d2-1);
(A.d1*B.d1)OVER(select d2 from test A ORDER BY A.d2)

*
ERROR 位于第 2 行:
ORA-00923: 未找到预期 FROM 关键字

已用时间:00: 00: 00.60
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
才支持 分析函数
可以采用表连接(<=做连接)
做乘积,然后分组
取每个分组中乘积最大的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行