当统计多条的三个参数在不同时间段的数据的sum,又只能写在同一个sql上时,可以考虑union all三次查询,

select * from
(
select kk.a_time as dates,kk.flag ,sum(kk.`参数一`) 参数一之和
,sum(kk.`参数二`) 参数二之和
,sum(kk.`参数三`) 参数三之和
from
(select
k.a_time
,k.flag
,sum(case when p_time=0 or p_time= a_time then 1 else 0 end) as '参数一'
,'' as '参数二'
,'' as '参数三'
from
(
select
a.pay_id
,o_days
,FROM_UNIXTIME(a_time/1000,'%Y-%m-%d')a_time
,case when p_time<>0 then FROM_UNIXTIME(p_time/1000,'%Y-%m-%d') else 0 end as p_time
,case when mod(a.pay_id,2)=0 and l.pay_id is not null then '系统一' else '系统二' end as flag
from pay a
LEFT JOIN
log l on a.pay_id = l.pay_id and l.`status` = 1 and type = 'baseinfo'
where a_time>= UNIX_TIMESTAMP('2018-07-23')*1000 and a_time< UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL 1 DAY))*1000 +24*3600*1000
)k
GROUP BY 1,2 UNION all select
DATE_SUB(k.a_time,INTERVAL 1 day) a_time
,k.flag
,'' as '参数一'
,'' as '参数二'
,sum(case when p_time=0 or p_time = DATE_SUB(a_time,INTERVAL 1 DAY) or p_time= a_time then 1 else 0 end) as '参数三' from
(
select
a.pay_id
,o_days
,FROM_UNIXTIME(a_time/1000,'%Y-%m-%d')a_time
,case when p_time<>0 then FROM_UNIXTIME(p_time/1000,'%Y-%m-%d') else 0 end as p_time
,case when mod(a.pay_id,2)=0 and l.pay_id is not null then '系统一' else '系统二' end as flag
from pay a
LEFT JOIN
log l on a.pay_id = l.pay_id and l.`status` = 1 and type = 'baseinfo'
where a_time>= UNIX_TIMESTAMP('2018-07-24')*1000 and a_time< UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL 1 DAY))*1000 +24*3600*1000
)k
GROUP BY 1,2 union all select
DATE_SUB(k.a_time,INTERVAL 1 day) a_time
,k.flag
,'' as '参数一'
,sum(case when o_days>0 then 1 else 0 end) as '参数二'
,'' as '参数三'
from
(
select
a.pay_id
,o_days
,FROM_UNIXTIME(a_time/1000,'%Y-%m-%d')a_time
,case when p_time<>0 then FROM_UNIXTIME(p_time/1000,'%Y-%m-%d') else 0 end as p_time
,case when mod(a.pay_id,2)=0 and l.pay_id is not null then '系统一' else '系统二' end as flag
from pay a
LEFT JOIN
log l on a.pay_id = l.pay_id and l.`status` = 1 and type = 'baseinfo'
where a_time>= UNIX_TIMESTAMP('2018-07-24')*1000 and a_time< UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL 1 DAY))*1000 +24*3600*1000
)k
GROUP BY 1,2 )kk
GROUP BY 1,2) kk
-- where dates>={DATE1} and dates<={DATE2}

  

该语句用了三次统计分别统计 参数一,参数二,参数三 的对应记录的dates,再做合并,有点好性能,只为满足需求的无奈之举!

mysql UNION all 实现不对称数据统计的更多相关文章

  1. PHP+Mysql+jQuery实现中国地图区域数据统计(raphael.js)

    使用过百度统计或者cnzz统计的童鞋应该知道,后台有一个地图统计,不同访问量的省份显示的颜色也不一样,今天我将带领大家开发一个这样的案例.上一篇<使用raphael.js绘制中国地图>文章 ...

  2. MySQL中实现连续日期内数据统计,缺省天数0补全

    某一日,需要查询订单表中一个月每天的金额数 查询出数据如下: array(14) { [0] => array(2) { ["money"] => string(7) ...

  3. PHP+Mysql+jQuery实现地图区域数据统计-展示数据

    我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...

  4. PHP+MySQL实现对一段时间内每天数据统计优化操作实例

    http://www.jb51.net/article/136685.htm 这篇文章主要介绍了PHP+MySQL实现对一段时间内每天数据统计优化操作,结合具体实例形式分析了php针对mysql查询统 ...

  5. 大数据学习day33----spark13-----1.两种方式管理偏移量并将偏移量写入redis 2. MySQL事务的测试 3.利用MySQL事务实现数据统计的ExactlyOnce(sql语句中出现相同key时如何进行累加(此处时出现相同的单词))4 将数据写入kafka

    1.两种方式管理偏移量并将偏移量写入redis (1)第一种:rdd的形式 一般是使用这种直连的方式,但其缺点是没法调用一些更加高级的api,如窗口操作.如果想更加精确的控制偏移量,就使用这种方式 代 ...

  6. python数据统计,总数,平均值等

    一般我们进行数据统计的时候要进行数据摸查,可能是摸查整体的分布情况啊.平均值,标准差,总数,各分段的人数啊.这时候用excel或者数据库统计都不方便. 我要统计的一个文件,太大了,还得分成15个文件, ...

  7. mysql union和union all的区别

    union 对两个结果集进行并集操作,重复数据只显示一次 Union All,对两个结果集进行并集操作,重复数据全部显示 工具/原料 mysql 数据库 方法/步骤   student表数据   使用 ...

  8. MySQL UNION 与 UNION ALL 语法与用法

    MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为: SELECT column,... FROM table1 UNION [ ...

  9. mysql计算连续天数,mysql连续登录天数,连续天数统计

    mysql计算连续天数,mysql连续登录天数,连续天数统计 >>>>>>>>>>>>>>>>>& ...

随机推荐

  1. 【Bootstrap 多级菜单】

    参考资料: Bootstrap-submenu:http://www.html580.com/11848/demo Bootstrap-submenu:https://vsn4ik.github.io ...

  2. 数据挖掘算法之聚类分析(二)canopy算法

    canopy是聚类算法的一种实现 它是一种快速,简单,但是不太准确的聚类算法 canopy通过两个人为确定的阈值t1,t2来对数据进行计算,可以达到将一堆混乱的数据分类成有一定规则的n个数据堆 由于c ...

  3. @CrossOrigin 跨域注解

    在spring 4.2后,提供了跨域注解@CrossOrigin https://spring.io/guides/gs/rest-service-cors/ Enabling CORS Contro ...

  4. 【DP】【单调队列】【NOI2005】瑰丽华尔兹

    340. [NOI2005] 瑰丽华尔兹 ★★★ 输入文件:adv1900.in 输出文件:adv1900.out 简单对照 时间限制:1 s 内存限制:128 MB [任务描写叙述] 你跳过华尔兹吗 ...

  5. django迁移model到别的app中

    举例: 移动 users.AccessKey 到 authentication.AccessKey中 1. 移动models到新的app中 $ mv users/models/access_key.p ...

  6. Android 4.4 Kitkat Phone工作流程浅析(七)__来电(MT)响铃流程

    本文来自http://blog.csdn.net/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. ...

  7. 2014秋C++第5周项目1參考-见识刚開始学习的人常见错误

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,实践要求见http://blog.csdn.net/sxhelijian/a ...

  8. MvcPager帮助文档 - MvcAjaxOptions 类

    表示用于 MvcPager 在 Ajax 分页模式下的选项设置,该类继承自 AjaxOptions. 公共属性: 名称 说明 默认值 AllowCache 获取或设置一个值,该值指示是否在Ajax分页 ...

  9. MII、GMII、RMII、SGMII、XGMII、XAUI、Interlaken

    MII即媒体独立接口,也叫介质无关接口.它是IEEE-802.3定义的以太网行业标准.它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1).数据接口包括分别用于发送器和接收器的两条独立信道 ...

  10. Skyscrapers Aren’t Scalable

     Skyscrapers Aren't Scalable Michael Nygard WE oFTEn HEAR SoFTWARE EnginEERing CoMpAREd to building ...