SELECT
SUM(CASE WHEN `status` = '1' THEN 1 ELSE 0 END) AS waitpay,
SUM(CASE WHEN `group_done` = '1' AND `status` = 0 THEN 1 ELSE 0 END) AS waitgroup,
SUM(CASE WHEN `status` = '3' THEN 1 ELSE 0 END) AS waitreceive,
SUM(CASE WHEN `status` = '4' AND `comment` = 1 THEN 1 ELSE 0 END) AS waitcomment,
SUM(CASE WHEN `back_status` <> '0' THEN 1 ELSE 0 END) AS aftersell
FROM `order` WHERE uid = 145 AND `is_del` = 0 AND `close_reason` = 0`user`
/**
* 统计订单的数量
*/
public function getStatOrderNum() {
$needParam = array(
'openId'=>array('code'=>1,'msg'=>'缺少参数')
);
$this->regArguments($needParam,$this->param);
if($this->outData['code']){
$this->printOut();
}
$uModel = new UserModel();
$uid = $uModel->getUidByOpenId($this->param['openId']);
if(!$uid){
$this->outData['code'] = 1;
$this->outData['msg'] = '账号异常,请联系客服人员';
$this->printOut();
} // 获取待付款,待成团,待收货,待评价,售后订单的数量 $sql = "SELECT";
$sql .=" SUM(CASE WHEN `status` = '1' THEN 1 ELSE 0 END) AS waitpay,";
$sql .=" SUM(CASE WHEN `group_done` = '1' AND `status` = 0 THEN 1 ELSE 0 END) AS waitgroup,";
$sql .=" SUM(CASE WHEN `status` = '3' THEN 1 ELSE 0 END) AS waitreceive,";
$sql .=" SUM(CASE WHEN `status` = '4' AND `comment` = 1 THEN 1 ELSE 0 END) AS waitcomment,";
$sql .=" SUM(CASE WHEN `back_status` <> '0' THEN 1 ELSE 0 END) AS aftersell";
$sql .=" FROM `order` WHERE uid = ".$uid." AND `is_del` = 0 AND `close_reason` = 0"; $orderModel = new OrderModel();
$res = $orderModel->query($sql);
$this->outData['data'] = $res[0];
$this->printOut();
}

一条sql语句,省去很多代码。

case when进行数据统计的更多相关文章

  1. 常用的数据统计Sql 总结

    最近刚在搞一个BI的项目,里面需要大量的sql 数据统计相关运用,加深了我又对SQL的理解与使用. 所以,分享几个数据统计时常用的sql 语句总结: 1. 统计各个条件下的数据 select Batc ...

  2. TFS二次开发系列:七、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)

    在TFS二次开发中,我们可能会根据某一些情况对各个项目的PBI.BUG等工作项进行统计.在本文中将大略讲解如果进行这些数据统计. 一:连接TFS服务器,并且得到之后需要使用到的类方法. /// < ...

  3. 常用的数据统计Sql 总结(转)

    转:http://www.cnblogs.com/zhangweizhong/p/5577842.html 最近刚在搞一个BI的项目,里面需要大量的sql 数据统计相关运用,加深了我又对SQL的理解与 ...

  4. PHP+Mysql+jQuery实现中国地图区域数据统计(raphael.js)

    使用过百度统计或者cnzz统计的童鞋应该知道,后台有一个地图统计,不同访问量的省份显示的颜色也不一样,今天我将带领大家开发一个这样的案例.上一篇<使用raphael.js绘制中国地图>文章 ...

  5. TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)

    TFS二次开发的数据统计以PBI.Bug.Sprint等为例(一) 在TFS二次开发中,我们可能会根据某一些情况对各个项目的PBI.BUG等工作项进行统计.在本文中将大略讲解如果进行这些数据统计. 一 ...

  6. Asp.net管理信息系统中数据统计功能的实现

    数据统计是每个系统中必备的功能,在给领导汇报统计数据,工作中需要的进展数据时非常有用. 在我看来,一个统计的模块应该实现以下功能: 能够将常用的查询的统计结果显示出来: 显示的结果可以是表格形式,也可 ...

  7. 大数据学习day34---spark14------1 redis的事务(pipeline)测试 ,2. 利用redis的pipeline实现数据统计的exactlyonce ,3 SparkStreaming中数据写入Hbase实现ExactlyOnce, 4.Spark StandAlone的执行模式,5 spark on yarn

    1 redis的事务(pipeline)测试 Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚.事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到 ...

  8. 大数据学习day33----spark13-----1.两种方式管理偏移量并将偏移量写入redis 2. MySQL事务的测试 3.利用MySQL事务实现数据统计的ExactlyOnce(sql语句中出现相同key时如何进行累加(此处时出现相同的单词))4 将数据写入kafka

    1.两种方式管理偏移量并将偏移量写入redis (1)第一种:rdd的形式 一般是使用这种直连的方式,但其缺点是没法调用一些更加高级的api,如窗口操作.如果想更加精确的控制偏移量,就使用这种方式 代 ...

  9. 有关“数据统计”的一些概念 -- PV UV VV IP跳出率等

    有关"数据统计"的一些概念 -- PV UV VV IP跳出率等 版权声明:本文为博主原创文章,未经博主允许不得转载. 此文是本人工作中碰到的,随时记下来的零散概念,特此整理一下. ...

随机推荐

  1. Linux的网卡由eth0变成了eth1或eth2,如何修复??

    背景:做linux下分布式测试的时候,重新安装了两个linux虚拟机,结果分布式脚本没有做好,分布式也没有做成. 今天想练练linux命令,打开vmware,启动linux1 虚拟机,使用ifconf ...

  2. Shell输入/输出重定向

    输出重定向 重定向一般通过在命令间插入特定的符号来实现.特别的,这些符号的语法如下所示 command1 >file1 上面这个命令执行command1然后将输出的内容存入file1. 注意任何 ...

  3. scala学习(1)----map和flatMap的区别

    转载:https://www.cnblogs.com/wbh1000/p/9846401.html 两者的区别主要在于action后得到的值 例子: import org.apache.spark.{ ...

  4. 洛谷—— P1450 [HAOI2008]硬币购物

    P1450 [HAOI2008]硬币购物 硬币购物一共有$4$种硬币.面值分别为$c1,c2,c3,c4$.某人去商店买东西,去了$tot$次.每次带$di$枚$ci$硬币,买$si$的价值的东西.请 ...

  5. Python数据分析与展示(1)-数据分析之表示(1)-NumPy库入门

    Numpy库入门 从一个数据到一组数据 维度:一组数据的组织形式 一维数据:由对等关系的有序或无序数据构成,采用线性方式组织. 可用类型:对应列表.数组和集合 不同点: 列表:数据类型可以不同 数组: ...

  6. 九九乘法表-Java

    public class Test1 { public static void main(String[] args){ for(int i=1;i<=9;i++){ for(int j=1;j ...

  7. 【10】AngularJS SQL

    AngularJS SQL 使用 PHP 从 MySQL 中获取数据 <div ng-app="myApp" ng-controller="customersCtr ...

  8. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  9. nyoj 1112 求次数(map, set)

    求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strl ...

  10. Spark在Executor上的内存分配

    spark.serializer (default org.apache.spark.serializer.JavaSerializer )    建议设置为 org.apache.spark.ser ...