group_concat  可以对分组查询后的值进行拼接,如

select a group_concat(b) from z group by a;  就会按a列分组,b列对应聚合结果以逗号进行分隔

select 与 case结合使用最大的好处有两点,一是在显示查询结果时可以灵活的组织格式,二是有效避免了多次对同一个表或几个表的访问。  可以完成行转列的操作

下面举个简单的例子来说明。例如表 students(id, name ,birthday, sex, grade),要求按每个年级统计男生和女生的数量各是多少,统计结果的表头为,年级,男生数量,女生数量。如果不用select case when,为了将男女数量并列显示,统计起来非常麻烦,先确定年级信息,再根据年级取男生数和女生数,而且很容易出错。

用select case when写法如下:

SELECT grade,COUNT(CASE WHEN sex = 1THEN 1

ELSE NULL                        END) 男生数,

COUNT(CASE WHEN sex = 2THEN 1                            ELSE NULL                       END) 女生数

FROM students

GROUP BY grade;

行转列举例:

如对日志的保存字段为:

id   attribute value

1    attr1    BMW

1    attr2    100

1    attr3     2013-01-01

需要针对不同的attribute按照id进行分组统计,可以

select id,

Max(case when attribute='attr1' then value  end)   as attr1

Max(case when attribute='attr2' then value end) as attr2

Max(case when attribute='attr3' then value end) as attr3

Max(case when attribute='attr4' then value end) as attr4

from t

group by id;

Max用来对case中符合条件的取出最大值,也可以用count()来统计个数

mysql case when 聚合函数_mysql聚合函数相关推荐

  1. mysql查询语句有点难_Mysql惯用函数,难点,注意_mysql

    十一.GROUP BY对结果分组 在与AVG()函数或SUM()函数等聚合函数一起使用时,GROUP BY子句能够发挥最大的作用.GROUP BY子句可以将查询结果分组,并返回行的汇总信息.在带有GR ...

  2. mysql od函数_Mysql数学函数不求人

    所有的数学函数在一个出错的情况下返回NULL.  -  单目减.改变参数的符号.  mysql> select - 2;  注意,如果这个操作符与一个BIGINT使用,返回值是一个BIGINT! ...

  3. mysql逗号分隔函数_mysql split 函数(用逗号分隔)的实现

    1:定义存储过程,用于分隔字符串 DELIMITER $$ USE `mess`$$ DROP PROCEDURE IF EXISTS `splitString`$$ CREATE DEFINER=` ...

  4. mysql信息函数和加密函数_MYSQL 常用函数(数学、字符串、日期时间、系统信息、加密)...

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...

  5. mysql 事件 函数_MySQL 自定义函数和存储过程的使用

    MySQL支持自定义函数和存储过程,创建函数和存储过程分别使用CREATE PROCEDURE和CREATE FUNCTION,两者在语法结构上比较相似,但是它们的使用方法及使用场景有所有不同. 1. ...

  6. mysql 中abs函数_Mysql常用函数

    本文内容: mysql函数的介绍 聚集函数 avg count max min sum 用于处理字符串的函数 合并字符串函数:concat(str1,str2,str3-) 比较字符串大小函数:str ...

  7. mysql left 函数_MySQL left()函数

    在本教程中,您将学习如何使用MySQL LEFT函数返回指定长度的字符串的左侧部分. MySQL LEFT函数介绍 LEFT()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分. 下面是LE ...

  8. mysql运行时间函数_mysql 时间函数

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------------------- ...

  9. mysql的max函数_MySQL MAX函数

    要了解MAX函数,请考虑一个employee_tbl表,该表具有以下记录- mysql> SELECT * FROM employee_tbl; +------+------+--------- ...

  10. mysql的isnull函数_MySQL isnull()函数基本指南

    本教程将向您介绍MySQL ISNULL函数以及如何使用它来处理NULL值. MySQL ISNULL函数简介 ISNULL函数接受一个参数,并测试该参数是否为.如果参数为NULL,则ISNULL函数 ...

最新文章

  1. luogu4677山区建小学题解--区间DP
  2. 复杂查询练习_《从零学会SQL:简单查询》第二关 简单查询
  3. canvas 圆角矩形填充_View绘制系列(9)Canvas八卦图绘制
  4. MVC身份验证及权限管理(转载)
  5. hdu-5707-Combine String
  6. EditPlus使用技巧(汇总)
  7. jedis操作set_Jedis对redis的五大类型操作代码详解
  8. openresty入门 方法及指令
  9. javascript 浮点计算问题解决思路
  10. 如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路
  11. android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目
  12. 谭浩强《c语言程序设计》第四版--重点难点总结
  13. 【语音识别】获得MOOC视频的文本(字幕)
  14. Word如何插入分数
  15. SaaS模式、技术与案例详解——第17章 案例详解
  16. python动态网页爬取——四六级成绩批量爬取
  17. Java 导出excel进行换行
  18. 图片加水印怎么加?这篇文章告诉你
  19. 那一抹淡淡的汐蓝 (瀑瀑安)
  20. MD5加密(纯代码)

热门文章

  1. 《Linux性能优化实战》—倪朋飞,CPU部分学习笔记
  2. mongodump 3.0.7
  3. 打印机能连上却不能打印
  4. 【历史上的今天】8 月 25 日:Linux三十周年;我国第一个计算机科学技术研究所成立
  5. oracle报ORA-12560: TNS: 协议适配器错误
  6. python仿360界面_python实现360的字符显示界面 -电脑资料
  7. 2019年9月最新1600个国内HTTP代理ip
  8. 港股指数实时行情数据 API 接口
  9. 【React】路由(详解)
  10. Windows Server 远程桌面连接 复制失效 rdpclip.exe