累加sql的方法

2021-08-30 23:35:31 字數 988 閱讀 5316

今天看到一篇帖子中有這樣乙個題目

表形式如下:

year      salary

2000        1000

2001        2000

2002        3000

2003        4000

想得到如下形式的查詢結果

year      salary

2000      1000

2001      3000

2002      6000

2003      10000

sql語句怎麼寫?

題目是要對salary列進行乙個逐年的累加.

經過分析可以做如下處理  表名為 yearsalary

寫法一:select a.year year, sum(b.d) salary from yearsalary a, (select a.year,sum(a.salary) d from a group by year) b where a.year>b.year group by a.year

寫法二:select a.years years,(select sum(salary) from salary b where b.years<=a.years) sumsalary from salary a

sql結構分析:將問題分解,首先應該得到累加的結果,然後再排序;首先求累加,累加的約束條件是比當前記錄中年份小的進行累加,那麼可以用select sum(salary) from salary b where b.years<=a.years,a當然是指巢狀在外面的表了,類似遞迴的意味.這一步做完後其實工作已經做完了

感覺寫法二很簡約,不過了寫法一更規範更易懂.

剛看到乙個寫法三 select   b.years, sum (a.salary) salary from salary a, salary b  where a.years <= b.years group by b.years 挺不錯

累加sql的書寫

寫法一 select a.year year,sum b.d salary from yearsalary a,select a.year,sum a.salary d from a group by year b where a.year b.year group by a.year 寫法二 se...

SQL累加常見的三種方法

有如下表add num 我們希望實現如下結果 開窗函式 學過開窗函式的小夥伴肯定首先想到的就是它了,不錯,開窗函式可以很快速的求解出來,具體寫法如下 select orderdate,sum amount over order by orderdate amount from add num 子查詢...

對Python實現累加函式的方法詳解

這個需求比較奇怪,要求實現sum和magasum函式,實現以下功能 sum 1 1 sum 1,2,3 6 mega程式設計客棧sum 1 1 megasum 1 2 3 6 實際上sum就是python自建的sum函式,它支援變參,變參怎麼實現,自然是 args,所以很容易寫出雛形 sumdef ...