码迷,mamicode.com
首页 > 数据库 > 详细

sql 对一张表进行按照不同条件进行多次统计

时间:2014-11-12 16:25:30      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:blog   sp   数据   div   log   代码   bs   ef   as   

最近一直在做数据统计,在此过程中,遇到过好多种情况都是对一张表按照不同的条件进行多次统计,以前的做法是统计几次按照不同的条件left join 几次,虽然也能得到想要的结果,但是效率太低,反映在页面就是访问速度很慢。

今天在又一次遇到这种情况,要对一张表按照不同的条件进行七八次统计,不想在按照以前的思路来了,在网上一搜,果真可以通过case when语句进行统计,具体思路如下:

第一步:按照数据的共性,查询出来所有数据,包括要统计次数的那些字段

第二步:用把case when 包含在count函数中,然后机械的写就可以了。

第三步:看到如此高的效率,自己在一边偷着乐吧。

不多说了,上代码

--有一张表table1 字段有id,name,sex,age
--现在要求统计 男生人数,女生人数,年龄为25的人数,年龄为26的人数
select count(case
               when sex = ‘gril‘ then
                1
             end) 女生人数,
       count(case
               when sex = ‘gril‘ then
                1
             end) 女生人数,
       count(case
               when age = 25 then
                1
             end) 25岁的人数,
       count(case
               when age = 26 then
                1
             end) 26岁的人数
  from table1
 where 1 = 1

  

 

sql 对一张表进行按照不同条件进行多次统计

标签:blog   sp   数据   div   log   代码   bs   ef   as   

原文地址:http://www.cnblogs.com/mozizhu/p/4092493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!