mysql case when sum count_MySQL巧用sum,case...when...优化统计查询

本文介绍了如何通过优化SQL查询,将原本耗时的统计查询从10秒优化到1秒。原来的问题是统计指定时间段内每天不同来源编号的订单数量。通过使用SUM和CASE...WHEN...结合,避免了多次子查询,提高了查询效率。在添加索引和使用优化后的SQL后,即使面对大量数据,也能快速得到结果。
摘要由CSDN通过智能技术生成

最近在做项目,涉及到开发统计报表相关的任务,由于数据量相对较多,之前写的查询语句查询五十万条数据大概需要十秒左右的样子,后来经过老大的指点利用sum,case...when...重写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`

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值