`

一个sql优化例子:用sum取代count

SQL 
阅读更多
原SQL:select count(*) as total from table a where a.row1='0'

修改后:
select
  sum(case a.row1 when '0' then 1 else 0 end) as total
from
  table a

或则

select
  sum(if(a.row1='0',1,0)) as total
from
  table a

SQL优化例子:

优化前

select
  s.Name,
  (select count(*) from CheckCertLog where StoreId=s.StoreId and State=0 and CheckTime between '2010-02-02' and '2010-9-2')as fail_count,
  (select count(*) from CheckCertLog where StoreId=s.StoreId and State=1 and CheckTime between '2010-02-02' and '2010-9-2')as success_count,
  (select count(*) from CheckCertLog where StoreId=s.StoreId and CheckTime between '2010-02-02' and '2010-9-2')as tcount
from
  Store as s

优化后

select 
  a.Name,
  sum(case b.State when 0 then 1 else 0 end ) as fail_count,
  sum(case b.State when 1 then 1 else 0 end ) as success_count,
  sum(case b.State when 1 then 1 else 1 end) as total
from
  Store a, CheckCertLog b
where
  a.StoreId=b.StoreId and b.CheckTime between '2010-02-02' and '2010-9-2'
分享到:
评论
1 楼 cectsky 2011-04-22  
请问大哥 ,这个效率有多大的提升呢?以前还真么这么弄过!

相关推荐

    Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解

    Oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是SQL性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖Oracle SQL优化与调优技术,主要内容包括: 第一篇“执行计划”...

    Oracle_SQL优化规则

    8. **适当使用集合函数**:SUM, COUNT等集合函数可能需要全表扫描,考虑是否可以使用分区函数或分组来减少计算范围。 9. **限制返回结果**:使用LIMIT或ROWNUM限制返回的行数,尤其是在开发和测试环境中,避免拉取...

    【整理】数据库面试题索引sql优化+数据库SQL优化总结之百万级数据库优化

    1. **SQL基础与语法**:面试通常会涉及到SQL的基本概念,如SELECT语句、JOIN操作、子查询、聚合函数(COUNT、SUM、AVG等)、WHERE和HAVING子句的区分。 2. **索引原理**:索引是提高查询速度的关键,面试中可能会问...

    Sql优化.ppt

    SQL 查询优化是数据库优化的重要部分,查询优化器是 SQL SERVER 中的一个组件,可以自动优化查询语句,提高查询效率。本文将详细介绍查询优化器的工作原理、SARG 的定义和应用、查询优化的 tips 等。 一、查询优化...

    收获,不止SQL优化 PDF 带书签 第二部分

    收获,不止SQL优化 PDF 带书签 第二部分

    SQL Pocket Guide 3rd Edition

    - 聚合函数:COUNT、SUM、AVG、MIN、MAX等统计函数的使用。 3. **连接查询** - INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN:理解不同类型的联接操作,合并来自多个表的数据。 - 自连接:处理一个表内部的...

    使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解

    在SQL语句中,`SUM` 和 `COUNT` 函数是非常常见的聚合函数,它们用于对一组数据进行求和或计数。然而,在某些场景下,我们可能需要在这些函数中加入条件判断,以便更精确地统计特定条件下的数据。本文将深入讲解如何...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    在 MySQL 数据库中,查询优化是一个非常重要的方面。在实际应用中,高效的查询可以提高整个系统的性能和响应速度。下面我们将介绍几个提高 MySQL 数据库查询效率的技巧。 使用 Statement 进行绑定查询 使用 ...

    字符串合计(SQL SUM)

    ms sql server 字符合计,类似sum函数的功能,不过是针对字符型!

    收获,不止SQL优化 PDF 带书签 第三部分

    然而,SQL虽然实现简单可乐,却极易引发性能问题,那时广大SQL使用人员可要“愁”就一个字,心碎无数次了。 缘何有性能问题?原因也一字概括:“量”。当系统数据量、并发访问量上去后,不良SQL就会拖跨整个系统,...

    Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    Oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是SQL性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖OracleSQL优化与调优技术,主要内容包括: 第一篇“执行计划”...

    sql例子2:折半查找漏数据

    折半查找漏数据的例子,仅供学习参考 create procedure fTheLossNo @cardno as begin declare @maxBalance float,@minBalance float,@middleBalance float,@tempMaxBalance float,@tempMinBalance float set @...

    数据库实验(sql server):高级SQL查询(分组、统计、嵌套、组合查询【附SQL源码.TXT】)

    嵌套查询是指在一个外部查询中使用另一个内部查询的结果。这种查询结构可以用来处理更为复杂的业务逻辑,特别是在需要跨多个表进行深入分析时。 **示例:** - **找出选了“数据库原理”这门课的学生数量:** ```...

    一般SQL语句优化整理

    - 将多个INSERT语句合并为一个,减少与数据库交互的次数。 - 使用事务管理来进一步提高效率。 ### 7. 数据库事务管理 - **场景**:在执行复杂的业务逻辑时,合理使用事务管理可以提高数据处理的安全性和一致性。...

    SQL语句中SUM与COUNT的区别深入分析

    SUM是对符合条件的记录的数值列求和 COUNT 是对查询中符合条件的结果(或记录)的个数 例如: 表fruit id name price 1 apple 3.00 2 pear 4.00 ... 您可能感兴趣的文章:解析关于SQL语句Count的一点细节

    sql面试题(sql查询优化)

    以下是从给定的部分内容中抽取的一个SQL查询优化实例: ```sql -- 创建测试表testA CREATE TABLE testA ( id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ta_year CHAR(10) NOT NULL, ta_num INT NOT NULL ); GO ...

    数据库面试题索引sql优化

    **题目1:** 给定一张表`table1`有两个字段`FID`,`Fno`,编写一个SQL语句来列出该表中一个`FID`对应多个不同的`Fno`的记录。 **解答:** ```sql SELECT * FROM table1 WHERE FID IN ( SELECT FID FROM table1 ...

Global site tag (gtag.js) - Google Analytics