mysql UNION all 实现不对称数据统计
当统计多条的三个参数在不同时间段的数据的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 实现不对称数据统计的更多相关文章
- PHP+Mysql+jQuery实现中国地图区域数据统计(raphael.js)
使用过百度统计或者cnzz统计的童鞋应该知道,后台有一个地图统计,不同访问量的省份显示的颜色也不一样,今天我将带领大家开发一个这样的案例.上一篇<使用raphael.js绘制中国地图>文章 ...
- MySQL中实现连续日期内数据统计,缺省天数0补全
某一日,需要查询订单表中一个月每天的金额数 查询出数据如下: array(14) { [0] => array(2) { ["money"] => string(7) ...
- PHP+Mysql+jQuery实现地图区域数据统计-展示数据
我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...
- PHP+MySQL实现对一段时间内每天数据统计优化操作实例
http://www.jb51.net/article/136685.htm 这篇文章主要介绍了PHP+MySQL实现对一段时间内每天数据统计优化操作,结合具体实例形式分析了php针对mysql查询统 ...
- 大数据学习day33----spark13-----1.两种方式管理偏移量并将偏移量写入redis 2. MySQL事务的测试 3.利用MySQL事务实现数据统计的ExactlyOnce(sql语句中出现相同key时如何进行累加(此处时出现相同的单词))4 将数据写入kafka
1.两种方式管理偏移量并将偏移量写入redis (1)第一种:rdd的形式 一般是使用这种直连的方式,但其缺点是没法调用一些更加高级的api,如窗口操作.如果想更加精确的控制偏移量,就使用这种方式 代 ...
- python数据统计,总数,平均值等
一般我们进行数据统计的时候要进行数据摸查,可能是摸查整体的分布情况啊.平均值,标准差,总数,各分段的人数啊.这时候用excel或者数据库统计都不方便. 我要统计的一个文件,太大了,还得分成15个文件, ...
- mysql union和union all的区别
union 对两个结果集进行并集操作,重复数据只显示一次 Union All,对两个结果集进行并集操作,重复数据全部显示 工具/原料 mysql 数据库 方法/步骤 student表数据 使用 ...
- MySQL UNION 与 UNION ALL 语法与用法
MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为: SELECT column,... FROM table1 UNION [ ...
- mysql计算连续天数,mysql连续登录天数,连续天数统计
mysql计算连续天数,mysql连续登录天数,连续天数统计 >>>>>>>>>>>>>>>>>& ...
随机推荐
- Hadoop之Azkaban详解
工作流调度器azkaban1 为什么需要工作流调度系统 1)一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序.hive脚本等 2)各任务单元之 ...
- subscription group permisson
- 支付宝支付系统繁忙,请稍后再试(ALI64)错误解决
解决方法:将商户支付參数的seller邮箱换成与partner同样的数字串,依然无法支付请检查所给參数
- 【DP】UVA 624 CD 记录路径
开一个数组p 若dp[i-1][j]<dp[i-1][j-a[i]]+a[i]时就记录下p[j]=a[i];表示此时放进一个轨道 递归输出p #include <stdio.h> # ...
- XP如何安装字体
1 点击控制面板,选择外观和主题,然后在左侧菜单中选择字体 2 点击文件,安装新字体选择驱动器和文件夹以找到自己下载的字体文件位置(如微软雅黑.ttf)点击确定之后可以安装.
- android EditText inputType 及 android:imeOptions=”actionDone”
一.android 软件盘事件响应 在android中,有时需要对EditText实现软件盘监听的场景.当android按下软键盘的时候,响应完成.发送.搜索或者其他事件. Google 提供了 Ed ...
- lodash _.size
返回collection(集合)的长度,如果集合是类数组或字符串,返回其 length :如果集合是对象,返回其可枚举属性的个数. _.size([1, 2, 3]); // => 3 _.si ...
- Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特
代码地址如下:http://www.demodashi.com/demo/13257.html 1. 需求说明 本项目基于Python爬虫,爬取豆瓣电影上关于复仇者联盟3的所有影评,并保存至本地文件. ...
- flash画图API:解析obj格式
又到了周末的时间,依旧的例牌菜.只是近期在和一些同事交流下,学习了一些新的知识.过去一直没有明确的问题,如今总算有点感觉了. 平时编程偶然会用到数学,特别是在做3d的时候.相信看过rokix的3d,那 ...
- poj 3592 Instantaneous Transference 【SCC +缩点 + SPFA】
Instantaneous Transference Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 6204 Accep ...