由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 怎么求和
相关主题
问一个query[转载] 求教数据库的query optimization 工作的面试
Late afternoon 腦不好使query 求助
sql面试题1这个 Oracle SQL 语句该这么写啊?
请教怎么来log duration of a MYSQL procedure?please help with this left join question
[转载] Can anyone interpret this simple SQL?oracle和XML
一个求和的有日期限制的sql query 问题.How to query a tree
请教一个SQL query该怎么写pls help me in this Sql query
How to write the queryask for help with a simple query!!!
相关话题的讨论汇总
话题: select话题: id1话题: value话题: 10话题: number
进入Database版参与讨论
1 (共1页)
p**e
发帖数: 11
1
有一个table, 像这样
id1 value
10 2
10 3
10 1
20 5
20 3
30 4
想把第一行的value跟第二行相加, 得到一个值作为第三列, 像这样:
id1 value total
10 2 2
10 3 5
10 1 6
20 5 11
20 3 14
30 4 18
怎么写query啊??
//SQL server 2008环境
D**C
发帖数: 6754
2
sigh, 用编程语言实现吧,一定要query吗?
i****a
发帖数: 36252
3
this needs an unique ID to work. so you cannot use your id1. you can add
an identity column to your table
Select *,
(select sum(b.value)
from yourtable b
where b.uniqueID <= a.uniqueID) running_total
from yourtable a
order by running_total
M*****r
发帖数: 1536
4
select t2.r2, SUM(t1.val)
from
(select ROW_NUMBER() over (order by id) as r1 , val, id from tbl) t1,
(select ROW_NUMBER() over (order by id) as r2 from tbl) t2
where t1.r1 <= t2.r2
group by t2.r2

【在 p**e 的大作中提到】
: 有一个table, 像这样
: id1 value
: 10 2
: 10 3
: 10 1
: 20 5
: 20 3
: 30 4
: 想把第一行的value跟第二行相加, 得到一个值作为第三列, 像这样:
: id1 value total

B*****g
发帖数: 34098
5
没看懂 t2

【在 M*****r 的大作中提到】
: select t2.r2, SUM(t1.val)
: from
: (select ROW_NUMBER() over (order by id) as r1 , val, id from tbl) t1,
: (select ROW_NUMBER() over (order by id) as r2 from tbl) t2
: where t1.r1 <= t2.r2
: group by t2.r2

B*****g
发帖数: 34098
6
(update似乎不一样也无所谓)
不知道这个能不能用,oracle下面sql必须加hint,否则t1,t2可能不一样。当然oracle
就不用这么做了,有现成的function。
WITH temptable (id, value, seqno)
AS
(
SELECT id, value, ROW_NUMBER() OVER (ORDER BY ID) AS seqno FROM table
)
SELECT t1.id, t1.seqno, SUM(t2.value)
FROM temptable, t1, temptable t2
WHERE t1.id = t2.id
AND t1.seqno >= t2.seqno
GROUP BY t1.id, t1.seqno

【在 p**e 的大作中提到】
: 有一个table, 像这样
: id1 value
: 10 2
: 10 3
: 10 1
: 20 5
: 20 3
: 30 4
: 想把第一行的value跟第二行相加, 得到一个值作为第三列, 像这样:
: id1 value total

c*******e
发帖数: 8624
7
records in tables are not ordered by nature

【在 p**e 的大作中提到】
: 有一个table, 像这样
: id1 value
: 10 2
: 10 3
: 10 1
: 20 5
: 20 3
: 30 4
: 想把第一行的value跟第二行相加, 得到一个值作为第三列, 像这样:
: id1 value total

a9
发帖数: 21638
8
他这个sum好像是一直累加起来的。

oracle

【在 B*****g 的大作中提到】
: (update似乎不一样也无所谓)
: 不知道这个能不能用,oracle下面sql必须加hint,否则t1,t2可能不一样。当然oracle
: 就不用这么做了,有现成的function。
: WITH temptable (id, value, seqno)
: AS
: (
: SELECT id, value, ROW_NUMBER() OVER (ORDER BY ID) AS seqno FROM table
: )
: SELECT t1.id, t1.seqno, SUM(t2.value)
: FROM temptable, t1, temptable t2

B*****g
发帖数: 34098
9
ding. 那Modeler的解法是正确的。

【在 a9 的大作中提到】
: 他这个sum好像是一直累加起来的。
:
: oracle

1 (共1页)
进入Database版参与讨论
相关主题
ask for help with a simple query!!![转载] Can anyone interpret this simple SQL?
请问这两个SQL QUERY有什么错?一个求和的有日期限制的sql query 问题.
请教一个SQL Query请教一个SQL query该怎么写
问个SQL的问题How to write the query
问一个query[转载] 求教数据库的query optimization 工作的面试
Late afternoon 腦不好使query 求助
sql面试题1这个 Oracle SQL 语句该这么写啊?
请教怎么来log duration of a MYSQL procedure?please help with this left join question
相关话题的讨论汇总
话题: select话题: id1话题: value话题: 10话题: number