mysql學習筆記——累加計算
阿新 • • 發佈:2021-01-22
題目
根據以下使用者資訊表user_info計算每天新增使用者daily_increace和當天累計使用者數user_total
分析
mysql5.7不支援with as 短語,此處使用自定義使用者變數進行累加計算
1:計算每天新增使用者,group by分佈
2:累加計算,使用者變數
答案
select a.reg_time
,a.daily_increace
,@i := @i + a.daily_increace as user_total
from
(select reg_time ,
count (user_id) daily_increace
from user_info group by reg_time) a
,(select @i := 0) b;
結果
Mysql 使用者變數
mysql 變數分為 區域性變數、使用者變數、會話變數、全域性變數 。上面的語句我們使用的是使用者變數。使用者變數與資料庫連線有關,在連線中宣告的變數,在儲存過程中建立了使用者變數後一直到資料庫例項接斷開的時候,變數就會消失。在此連線中宣告的變數無法在另一連線中使用。
MySQL中使用者變數不用事前申明,使用的時候以@varname的格式進行宣告。通過:=或者=進行賦值操作。如果需要對外輸出需要用select關鍵字,而且賦值必須使用:=。
在實際業務中@i初始化的時候有可能不為0,比如我們統計上面9月4號到9月6號這時候之前的總人數為1 。 這個要特別注意。實際業務開發中如果我們能在邏輯編碼中實現還是建議在邏輯編碼中進行一些複雜的運算。
題目來源:
微信公眾號:SQL資料庫開發——》SQL每日一題(20210121)
參考部落格:
https://www.cnblogs.com/felordcn/p/12142574.html