每隔15行生成一個彙總行(王工優化版)
http://blog.itpub.net/29254281/viewspace-2149120/
接前文
前文有一塊寫多餘了
糾正如下
王工優化的版本如下,確實是效率又高,可讀性又好,整體還更精煉.
接前文
前文有一塊寫多餘了
糾正如下
王工優化的版本如下,確實是效率又高,可讀性又好,整體還更精煉.
- select
- case
- when starttime is null then '彙總'
- else ''
- end l,
- ifnull(starttime, minstarttime) starttime,
- ifnull(endtime, maxendtime) endtime,
- `中獎數量`,`抽獎數量`
- from(
- select
- ceil(t1.id/15) l,
- starttime,
- endtime,
- sum(ifnull(`中獎數量`,0)) `中獎數量`,
- sum(ifnull(`抽獎數量`,0)) `抽獎數量`,
- min(starttime) minstarttime,
- max(endtime) maxendtime
- from (
- select
- id,
- '2017-12-21 09:30:00'+ interval (id-1) minute starttime,
- '2017-12-21 09:30:59'+ interval (id-1) minute endtime
- from nums,
- (select @rn:=0,@starttime:='',@endtime:='',@c1:=-1,@c2:=-1) vars
- where id<=10000
- AND
- ('2017-12-21 09:30:00'+ interval (id-1) minute)<=
- (select max(actiontime)+interval '15' minute FROM award_gift_record WHERE awardactId=235)
- ) t1
- left join
- (
- SELECT
- date_format(actiontime,'%Y-%m-%d %H:%i:00') 時間,
- count(case when AwardGiftID!=-1 then 1 else null end) 中獎數量,
- count(AwardGiftID) 抽獎數量
- FROM award_gift_record
- WHERE awardactId=235
- group by date_format(actiontime,'%Y-%m-%d %H:%i:00')
- ) t2 on(t2.時間 between t1.starttime and endtime)
- group by l,starttime,endtime with rollup having
- (
- (endtime is null and starttime is null)
- or
- (starttime is not null and endtime is not null)
- )
- ) result;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2149309/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 每隔N行生成一個彙總行(總結)
- 易優CMS每隔N行輸出內容判斷
- crontab 每隔幾秒執行
- 機器學習中常見優化方法彙總機器學習優化
- MySQL 52個SQL效能優化策略SQL語句彙總MySql優化
- 15個常用Linux命令列總彙Linux命令列
- java執行緒文章彙總Java執行緒
- MySQL查詢優化之優化器工作流程以及優化的執行計劃生成MySql優化
- 9個Java效能優化工具彙總Java優化
- 多執行緒並行執行,然後彙總結果執行緒並行
- 前端開發優化的一些常見方法彙總前端優化
- 【OC梳理】效能檢測及優化彙總優化
- unity C# 每隔一段時間執行一次UnityC#
- 行轉列的一種優化思路優化
- PostgreSQL11preview-優化器增強彙總SQLView優化
- ANDROID記憶體優化(大彙總——上)Android記憶體優化
- ANDROID記憶體優化(大彙總——中)Android記憶體優化
- ANDROID記憶體優化(大彙總——下)Android記憶體優化
- 動態生成一個m行n列的表格
- 2017年首個Win10 Mobile慢速版15043修復內容彙總Win10
- Linux 運維必備 150 個命令彙總Linux運維
- 騰訊泛工業化後臺開發面試問題彙總面試
- 在前端使用 JS 進行分類彙總前端JS
- Java 多執行緒面試問題彙總Java執行緒面試
- 檢視sql執行計劃方法彙總SQL
- JavaScript 前端效能優化小竅門例項彙總JavaScript前端優化
- [譯] Android效能優化:APK瘦身方式大彙總Android優化APK
- VS2013執行速度優化彙總優化
- Mysql 52條SQL語句效能優化策略彙總MySql優化
- 如何優雅的停止一個執行緒?執行緒
- 七個基於 Fedora Linux 的優秀髮行版Linux
- 把檔案每隔三行合併成一行(awk之RS、ORS與FS、OFS)
- 22 個 Android Studio 優秀外掛彙總Android
- 最常用 150 個Linux命令彙總(建議收藏)Linux
- 每秒執行6000的簡單SQL優化(一)SQL優化
- 行轉列計算差值的一種優化優化
- 前端模組化彙總前端
- Win10 Mobile正式版15254.527更新內容彙總Win10