发布网友 发布时间:2022-04-11 08:21
共4个回答
懂视网 时间:2022-04-11 12:43
题目
有如下一张表T
想要得到如下结果:
解释:T表中的Result列的第1行始终保持为1,后面的数据行=上一行的结果+上一行的NUM值,例如ID为2的Result为6=1+5,ID为3的Result为9=6+3,以此类推。
该如何写这个SQL?
读者可以试着自己思考写下,再往下翻... 如有不同解题方式,大家一起交流。
解答:
WITH T AS (SELECT 1 ID, 5 NUM FROM DUAL UNION ALL SELECT 2 ID, 3 NUM FROM DUAL UNION ALL SELECT 3 ID, 12 NUM FROM DUAL UNION ALL SELECT 4 ID, 2 NUM FROM DUAL UNION ALL SELECT 5 ID, 7 NUM FROM DUAL UNION ALL SELECT 6 ID, 9 NUM FROM DUAL), tt (id, num, result) as ( select id,num,1 result from t where id=1 union all select t.id ,t.num,tt.result+tt.num from tt,t where tt.id+1=t.id ) select * from tt;
ID NUM RESULT
1 5 1
2 3 6
3 12 9
4 2 21
5 7 23
6 9 30
如有其它解题思路,欢迎一起交流学习。
SQL每日一题(20200509)
标签:ade 结果 https white 思路 original oracle数据库 sans oracl
热心网友 时间:2022-04-11 09:51
SELECT热心网友 时间:2022-04-11 11:09
每天体温均值(mssql)热心网友 时间:2022-04-11 12:43
代码如下