假如我有下面的表:
ID    Item           status            updatetime    author
1    a        1        2014-01-02     Mike
2    a        1        2014-02-01     Jack
3    b        2        2014-01-10     John
4    b        1        2014-10-10     Ben
5    b        2        2014-01-11     Sam
6    c        3        2014-01-02     Aron
7    c        1        2014-11-01     Aron
8    c        1        2014-10-20     Max
9    d        3        2014-10-20     Mike

想统计对于每一个item,每一种status的个数为多少,同时记录器最新的时间和作者,结果如下:
Item    status_1    status_2    status_3    Latestupdate    author
a        2             0          0         2014-02-01        Jack
b        1             2          0         2014-10-10        Ben
c        2             0          1         2014-11-01        Aron
d        0             0          1         2014-10-20        Mike

select item,
sum(case when status = 1 then 1 else 0 end) as status_1,
sum(case when status = 2 then 1 else 0 end) as status_2,
sum(case when status = 2 then 1 else 0 end) as status_3
max(update time) as Latestupdate, 
author
from table
group by item, status_1, status_2, status_3

mysql统计一个字段的多种状态的更多相关文章

  1. mysql添加一个字段(

    mysql添加一个字段(在指定的一个字段后面) 举个栗子:alter table inquiry add error_code varchar(3) after add_time; 说明:alter ...

  2. MySQL数据库一个字段对应多个值得模糊查询

    当一个字段想模糊查询出多个字段的时候,正常情况下一般会这么作 select * from a where name like 'a%' or name like 'b%' ....or ...; 但是 ...

  3. MySQL数据库一个字段对应多个值得模糊查询和多个字段对应一个模糊查询

    当一个字段想模糊查询出多个字段的时候,正常情况下一般会这么作 1 select * from a where name like 'a%' or name like 'b%' ....or ...; ...

  4. mysql 统计一个字符在字符串中出现的次数

    CREATE  FUNCTION `str_pcount`(str varchar(255),p varchar(255)) RETURNS int(11)BEGIN    #统计一个字符在字符串中出 ...

  5. 分类汇总统计mysql数据库一个字段中不同的记录的总和

    方法1.用 if 语句,如下例. 方法2.用case when then else 语句,用法如同if. mysql> select sum(if(id<500,1,0)),sum(if( ...

  6. mysql中一个字段升序,另一个字段降序

    mySql中,升序为asc,降序为desc.例如: 升序:select   *  from  表名 order by  表中的字段 asc(mysql中默认是升序排列,可不写) 降序:select   ...

  7. Mysql统计同一字段不同值的个数

    按照 Name 的名字分组,对 Value 值为 0 和 1 的个数进行统计 end) value0, end) value1 from new_table group by name: 结果:

  8. mysql查找一个字段属于哪个表

    查询mid字段存在于哪个表中 SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`COLUMNS` WHERE COLUMN_NAME='m ...

  9. MySQL给一个字段递增赋值

    https://blog.csdn.net/kriszhang/article/details/72125203 首先设置一个变量,初始值为0: set @r:=0; 1 然后更新表中对应的ID列: ...

随机推荐

  1. Runtime.getRuntime().addShutdownHook(Thread thread) 程序关闭时钩子,优雅退出程序

    根据 Java API, 所谓 shutdown hook 就是已经初始化但尚未开始执行的线程对象.在Runtime 注册后,如果JVM要停止前,这些 shutdown hook 便开始执行.也就是在 ...

  2. POJ 2431 (优先队列)

    题目链接:https://vjudge.net/problem/POJ-2431 思路: “ 在卡车行驶途中, 只有经过加油站才能加油.” 我们不妨转变思路, 理解成“当卡车驶过加油站时就获得了加油的 ...

  3. Vue.js 相关知识(路由)

    1. 简介 路由,工作原理与路由器相似(路由器将网线总线的IP分发到每一台设备上),Vue中的路由根据用户在网页中的点击,将其引导到对应的页面. 2. 使用步骤 安装vue-router或者直接引入v ...

  4. PAT甲题题解-1024. Palindromic Number (25)-大数运算

    大数据加法给一个数num和最大迭代数k每次num=num+num的倒序,判断此时的num是否是回文数字,是则输出此时的数字和迭代次数如果k次结束还没找到回文数字,输出此时的数字和k 如果num一开始是 ...

  5. 20135202闫佳歆--week5 分析system_call中断处理过程--实验及总结

    week 5 实验:分析system_call中断处理过程 一.使用gdb跟踪分析一个系统调用内核函数(上周选择那一个系统调用)--getpid 复习视频: 如何实现? - 更新menu代码到最新版 ...

  6. linux内核分析第四周学习笔记

    linux内核分析第四周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  7. do

    http://www.cnblogs.com/xdp-gacl/p/3791993.html http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html

  8. PAT 甲级 1115 Counting Nodes in a BST

    https://pintia.cn/problem-sets/994805342720868352/problems/994805355987451904 A Binary Search Tree ( ...

  9. 解决局域网IP冲突

    进入cmd ipconfig -all 查看现有IP,发现IP不是192.168.1.*的形式,而是192.168.0.*等异常 ipconfig -release  释放现有IP ipconfig ...

  10. node.js处理url常用方法

    处理非阻塞I/O /* *回调函数的方法 异步 */ /* function f(cb){ fs.readFile('./4',(err,data)=>{ cb(data.toString()) ...