mysql如何实现每隔15行生成一个汇总行

55次阅读
没有评论

共计 1274 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章给大家分享的是有关 mysql 如何实现每隔 15 行生成一个汇总行的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

纠正如下

王工优化的版本如下,确实是效率又高, 可读性又好, 整体还更精炼.
ol start= 1 >

select 

 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, 

 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 

 join 

 ( 

 SELECT 

 date_format(actiontime, %Y-%m-%d %H:%i:00)  时间, 

 when AwardGiftID!=-1 then 1 else null end)  中奖数量, 

 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; 

感谢各位的阅读!关于“mysql 如何实现每隔 15 行生成一个汇总行”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计1274字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)