mysql-查询2

作者: GALAXY_ZMY | 来源:发表于2015-11-15 22:56 被阅读48次
分组查询 group by

group by 属性名 [having 条件表达式][ with rollup]

“属性名 ”指按照该字段值进行分组;“having 条件表达式 ”用来限制分组后的显示,满足条件的结果将被显示;with rollup 将会在所有记录的最后加上一条记录,该记录是上面所有记录的总和。

1)单独使用

group by 单独使用,查询结果只显示一个分组的一条记录。
实例:
select * from employee group by sex;
将只显示男女两条记录。

2)与group_concat()函数一起使用

每个分组中指定字段值都显示出来
实例:
select sex,group_concat(name) from employee group by sex;
显示结果中“女”会显示所有sex为“女”的名字name

sex | group_concat(name)
女 | 小红,小兰
男 | 张三,王五,王六

3)与集合函数一起使用

实例:
select sex,count(sex) from employee group by sex;
结果:

sex | count(num)
女 | 1
男 | 3

count()为计算个数的方法。

4)与having一起使用

“having条件表达式”,可以限制输出结果。只有满足条件表达式的结果才显示。
实例:
select sex,count(sex) from employee group by sex having count(sex) >= 3;
结果:

sex | count(sex)
男 | 3

“having条件表达式”作用于分组后的记录。

5)按多字段进行分组

select * from employee group by d_id,sex;
查询结果先按d_id分组,再按sex进行分组

6) 与with rollup一起使用

使用with rollup将会在所有记录的最后加上一条记录,这条记录是上面所有记录的总和
实例:
select sex,count(sex) from employee group by sex with rollup;
结果:

sex | count(sex)
女 | 1
男 | 5
null | 6

如果是字符串的话,比如姓名就会生成“张三,李四,王五”这种类型的结果,即name总和。

相关文章

  • mysql-查询2

    分组查询 group by group by 属性名 [having 条件表达式][ with rollup] “...

  • MYSQL-索引

    MYSQL-索引 概述 用来加快查询的技术很多,其中最重要的是索引。通常索引能够快速提高查询速度。如果不适用索引,...

  • MySql-多表查询

    多表查询分为以下几种: 合并结果集: UNION UNION ALL 连接查询 ...

  • mysql-查询3

    1.limit限制查询结果条数 1)不指定起始位置 limit 记录数 记录数超过查询结果则显示所有的记录,不会报...

  • mysql-查询1

    1.基本查询语句 select 属性列表 from 表名和视图列表 [where 条件表达式1] [group b...

  • mysql-查询优化

    ref : http://coolshell.cn/articles/1846.html 为查询缓存优化你的查询大...

  • mysql-子表查询

    子查询是将一个查询语句嵌套在另一个查询语句之中。 子查询的结果可为外层查询提供一个范围 子查询中可以包含:IN、N...

  • MYSQL-子查询

    子查询是一个查询语句嵌套在另一个查询语句中。内层查询语句的结果,可以为外层查询语句提供查询条件。 子查询关键字:i...

  • MySQL-查询语法

    表结构 表 - 别名u 字段 * 10 字段 - as 别名字段pf 没有说明查询具体列,需要加入* 具体搜索 ...

  • MySQL-高级查询

    嵌套查询(子查询) 把内层的查询结果作为外层的查询条件 示例 多表查询 多个表之间联合查询 连接查询 内连接 外连...

网友评论

    本文标题:mysql-查询2

    本文链接:https://www.haomeiwen.com/subject/pxachttx.html