MYSQL分组查询

groub by 分组的含义:

将查询结果按照1个或多个字段进行分组,字段值相同的为一组

可用于单个字段分组,也可用于多个字段分组

group by 单独使用的意义不大

select语句的order by 子句根据寻要排序检索出的数据。

单列排序并指定方向,不指定会默认升序。

升序(ASC) 降序(DESC)

例题:select * from 表名 where 条件 order by age ASC;

中文排序转格式为gbk格式:

order by convert(name using gbk)ASC;

MYSQL分组查询_第1张图片


MYSQL分组查询_第2张图片

限制查询:指定返回的行数。

LIMIT 0,5  指定从第几行起,返回多少行,从0起但是不包括0

可以结合order by 取最大值 和最小值。

AVG()函数

VG()通过对表中行数计数并计算特定列值之和,求得该列的平均 值。 AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值

COUNT()函数、MAX()函数、MIN()函数、SUM()函数的用法和AVG()函数用法一样。

MYSQL分组查询:

roub by 分组的含义

group by + 集合函数:


MYSQL分组查询_第3张图片

group by + group_concat() + 集合函数:


MYSQL分组查询_第4张图片

group by + with rollup:


MYSQL分组查询_第5张图片

过滤分组用HAVING函数:

having与where很像,都是根据条件筛选结果,不过HAVING是在已有的结果上在进一步的筛选。

例题如下:


MYSQL分组查询_第6张图片

r写在规则之前如r'\d'代表的事原始字符串,\b代表的是单词的边界分割。

你可能感兴趣的:(MYSQL分组查询)