累加sql的書寫

2021-05-28 13:12:56 字數 614 閱讀 4282

寫法一: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的方法

今天看到一篇帖子中有這樣乙個題目 表形式如下 year salary 2000 1000 2001 2000 2002 3000 2003 4000 想得到如下形式的查詢結果 year salary 2000 1000 2001 3000 2002 6000 2003 10000 sql語句怎麼寫?...

SQL書寫規範

1 語句中出現的所有表名 欄位名全部小寫,系統保留字 內建函式名 sql保留字大寫 sql不區分大小寫 2 連線符or in and 以及 等前後加上乙個空格。3 對較為複雜的sql語句加上注釋,說明演算法 功能。注釋風格 注釋單獨成行 放在語句前面。1 應對不易理解的分支條件表示式加注釋 2 對重...

sql書寫規則

表命名是以英文名稱為原則,表示該錶的具體意義,例如商品表可以叫item,商品表可以叫item image。如果公司業務複雜,資料庫過多,schema也比較多,則要根據schema的來命名,例如 在crm下面可以用crm開頭命名crm user.臨時表應該以tmp開頭tmp user,這樣的表一段時間...