这段时间,做项目做累了,好不容易有点个人的学习时间,利用这个小时,总结一下,最近做统计的时候常用的case语句吧。

结构:case  when… then …end

1.判断的同时改变其值

eg:

                   

select OperatorAccount,

        case
     when CreateTime>'2016-02-14 16:24:42' then 'after'

         when CreateTime<'2016-02-14 16:24:42' then 'before'

         else 'now' end stage
from log_login order by CreateTime DESC

第二种写法

                   

 SELECT CallerNumber, CASE IsLocal
WHEN 0 THEN '外线' WHEN 1 THEN '内线' END FROM cdr

2.拆分一行为多列

eg:

 SELECT SipAccount, COUNT(1) AS number,IsCheck
FROM cdr
GROUP BY SipAccount,IsCheck

针对这个统计结果进行拆分(0表示未打分,1代表优秀,2代表合格,3代表不合格)

最终结果如下:

所以最终要用到行拆分成三列,语句如下

                   
 SELECT SipAccount,
(CASE IsCheck WHEN 1 THEN number END) youxiu,
(CASE IsCheck WHEN 2 THEN number END) hege,
(CASE IsCheck WHEN 3 THEN number END) buhege
FROM
(SELECT SipAccount, COUNT(1) AS number,IsCheck
FROM cdr
GROUP BY SipAccount,IsCheck) AS a



现在结果是这样的,你会发现虽然拆成了三列,但是最终结果还不是自己需要的,接下来就需要根据sipaccount来分组的同时对结果进行处理了。语句如下:

                   
 SELECT sipaccount,
IF(MAX(youxiu) IS NULL,0, MAX(youxiu)) youxiu,
IF(MAX(hege) IS NULL,0, MAX(hege)) hege,
IF(MAX(buhege) IS NULL,0, MAX(buhege)) buhege
FROM
(SELECT SipAccount,
(CASE IsCheck WHEN 1 THEN number END) youxiu,
(CASE IsCheck WHEN 2 THEN number END) hege,
(CASE IsCheck WHEN 3 THEN number END) buhege
FROM
   (SELECT SipAccount, COUNT(1) AS number,IsCheck FROM cdr GROUP BY SipAccount,IsCheck) AS a) AS b
GROUP BY sipaccount


最终得到了这个结果。正式我们需要的格式

Mysql之case语句(附带实例)的更多相关文章

  1. MySQL存储过程 CASE语句

    MySQL存储过程  CASE语句 除了IF语句,MySQL提供了一个替代的条件语句CASE. MySQL CASE语句使代码更加可读和高效. CASE语句有两种形式:简单的搜索CASE语句. 简单C ...

  2. linux bash shell中case语句的实例

    本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下. 本文转自:http://www.jbxue.com/article/13377.h ...

  3. ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句

    5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN ...

  4. Shell系列(34) - 多分支case语句简介及实例

    多分支case条件语句 概念 case语句和if...elif...else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关 ...

  5. mysql查询 if判断、case语句的使用等

    一. 查询的数字转换为中文返回前端 1. 如果是0或1表状态等,可用: IF(字段 = 0, '否', '是') AS xxx 2. 如果是多个值,比如1,2,3可用: ELT(字段, '计划治理', ...

  6. MySQL中SQL语句2

    上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...

  7. mysql 常用 sql 语句 - 快速查询

    Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup    ...

  8. mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记

    mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...

  9. MySQL 数据库SQL语句——高阶版本2

    MySQL 数据库SQL语句--高阶版本2 实验准备 数据库表配置: mysql -uroot -p show databases; create database train_ticket; use ...

随机推荐

  1. C++/CLI——读书笔记《Visual C++/CLI从入门到精通》 第Ⅳ部分

    =================================版权声明================================= 版权声明:本文为博主原创文章 未经许可不得转载  请通过右 ...

  2. A record--Offline deployment of Big Data Platform CDH Cluster

    A record--Offline deployment of Big Data Platform CDH Cluster Tags: Cloudera-Manager CDH Hadoop Depl ...

  3. 损失函数(Loss Function)

    转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 线性回归中提到最小二乘损失函数及其相关知识.对于这一部分知识不清楚的同学可以参考上一篇文章<线性回归 ...

  4. linux运维常用命令及知识

    1.查找当前目录下所有以.tar结尾的文件然后移动到指定目录: find . -name “*.tar” -exec mv {} ./backup/ ; 查找当前目录30天以前大于100M的LOG文件 ...

  5. 如何在Chrome39添加360抢票王插件

    前言: 版本:Chrome 39.0.2171.95 m CRX文件来源:ext.se.360.cn 本文地址:http://www.cnblogs.com/go2bed/p/4206714.html ...

  6. Xamarin Android中引用Jar包的方法

    新建一个Java Bingdings Library 将Jar包复制,或使用添加已存在的文件,到Jars文件夹中 确认属性中的“生成操作” 如果有类型转换不正确,请修改Transforms文件夹中的相 ...

  7. Nagios 自定义插件与安装使用之监控dead datanodes

    现在我使用nagios来监控hadoop的核心进程,rm,nm,dn,nn,zkfc,jn,zk等,但是有时候进程虽然还在,但是日志不刷新,web ui上可以看到有些datanodes节点已经变为de ...

  8. 【转】【收藏】LINQ学习心得分享--------(二)LINQ语法详解

    原地址:http://blog.csdn.net/xuemoyao/article/details/8053444   通过上一章节的学习,相信大家已经掌握了学习LINQ的前期的准备知识.在这一节里, ...

  9. POJ1014Dividing[多重背包可行性]

    Dividing Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 68769   Accepted: 17955 Descri ...

  10. AJAX、JQUERY 工作遇到的知识点

    泽浜商城关联公司知识点总结 1.关联公司的时候,根据用户ID,在数据库中用户表中关联公司ID,公司的列表通过查找公司表 ,然后抓取所有公司的名称和ID.关联的时候只需要根据公司name和ID进行关联. ...