請(qǐng)教一個(gè)mysql查詢的問(wèn)題
問(wèn)題描述
設(shè)一個(gè)表中記錄了用戶的積分變動(dòng),默認(rèn)為加
主鍵用戶id變動(dòng)日期變動(dòng)數(shù)值100012017-01-01 00:00:0010200022017-01-01 04:10:0020300012017-02-01 05:04:00400400012017-02-05 00:00:0010500022017-04-01 00:00:0030而我如果需要查出各用戶各時(shí)間段的資金變動(dòng)總和,如下表所示
主鍵用戶id變動(dòng)日期變動(dòng)數(shù)值變動(dòng)總和100012017-01-01 00:00:001010200022017-01-01 04:10:002020300012017-02-01 05:04:00400410400012017-02-05 00:00:0010420500022017-04-01 00:00:003050這種sql改如何書(shū)寫(xiě)?我用的是mysql5.6,結(jié)果集順序沒(méi)有要求。
問(wèn)題解答
回答1:select sum(變動(dòng)數(shù)值) from table where 變動(dòng)日期 >=yymmdd and 變動(dòng)日期 <=yymmdd group by 用戶id
回答2:這樣的需求建議到程序中處理性能會(huì)好很多
當(dāng)然mysql 也可以直接查詢出結(jié)果
select a.*,sum(b.變動(dòng)數(shù)值) as 變動(dòng)總和 from table a left join table as b on a.用戶id=b.用戶id and a.變動(dòng)日期>=b.變動(dòng)日期 group by a.主鍵回答3:
select ccc.* ,if(@lag_uuid = 用戶id ,@lag:=@lag+變動(dòng)數(shù)值,@lag:=變動(dòng)數(shù)值) 變動(dòng)總和, (@lag_uuid := 用戶id) lag_uuid
from (SELECT * FROM tbl_ WHERE 1=1 order by 用戶id ) ccc,(select @lag:=0,@lag_uuid:=null) tb_lag
order by ccc.id
相關(guān)文章:
1. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????2. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)3. html按鍵開(kāi)關(guān)如何提交我想需要的值到數(shù)據(jù)庫(kù)4. mysql取模分表與分表5. gvim - 誰(shuí)有vim里CSS的Indent文件, 能縮進(jìn)@media里面的6. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點(diǎn)符號(hào)?正則如何寫(xiě)?7. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤8. PHP類屬性聲明?9. objective-c - ios 怎么實(shí)現(xiàn)微信聯(lián)系列表 最好是swift10. javascript - 請(qǐng)教如何獲取百度貼吧新增的兩個(gè)加密參數(shù)
