导读:
郑松华,知数堂SQL 优化班老师
现任 CCmediaService DBA,主要负责数据库优化相关工作
擅长SQL优化 ,数据核对
想阅读更多内容请点击订阅专栏
大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子
背景说明:
今天在刷头条的时候,看到下面的文章
https://www.toutiao.com/a6727944177943839243/
看到他的SQL还有优化的空间,经过他的同意写下这篇文章
为了阅读方便,把需要的资料引用到这里。
表结构如下:
CREATE TABLE `statistic_order` ( `oid` bigint(20) NOT NULL, `o_source` varchar(25) DEFAULT NULL COMMENT '来源编号', `o_actno` varchar(30) DEFAULT NULL COMMENT '活动编号', `o_actname` varchar(100) DEFAULT NULL COMMENT '参与活动名称', `o_n_channel` int(2) DEFAULT NULL COMMENT '商城平台', `o_clue` varchar(25) DEFAULT NULL COMMENT '线索分类', `o_star_level` varchar(25) DEFAULT NULL COMMENT '订单星级', `o_saledep` varchar(30) DEFAULT NULL COMMENT '营销部', `o_style` varchar(30) DEFAULT NULL COMMENT '车型', `o_status` int(2) DEFAULT NULL COMMENT '订单状态', `syctime_day` varchar(15) DEFAULT NULL COMMENT '按天格式化日期', PRIMARY KEY (`oid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8
原文作者优化后的SQL 版本如下:
select S.syctime_day, sum(case when S.o_source = 'CDE' then 1 else 0 end) as 'CDE', sum(case when S.o_source = &#