美文网首页
正则排序、查询、聚合函数

正则排序、查询、聚合函数

作者: 糖炒栗子_01c5 | 来源:发表于2018-08-10 16:59 被阅读0次

    MySQL排序

    使用ORDER BY 关键词 根据需要排序检索出的数据

    单列排序(并指定方向)(默认升序排列)

    升序排列

    SELECT math,name FROM grade order by ASC;

    降序排列

    SELECT math,name FROM GRADE order by DESC;

    多列排序(并指定方向)

    指定列名,列名之间用逗号分开即可

    SELECT name,math,chinese FROM grade ORDER BY math DESC,name ASC;

    限制查询

    使用LIMIT 关键词 

    指定返回的行数

    SELECT * FROM GRADE LIMIT 5;

    指定从第几行起,返回多少行

    第一个数为开始 位置(不包括此数字),第二个数为要检索的行数

    SELECT name FROM grade LIMIT 2,5;

    最大值

    SELECT math,chinese FROM grade ORDER BY math DESC LIMIT 1;

    最小值

    SELECT math,english FROM grade ORDER BY english ASC LIMIT 1;

    聚合函数

    AVG() 返回某列的平均值

    COUNT() 返回某列的行数

    MAX() 返回某列的最大值

    MIN() 返回某列的最小值

    SUM() 返回某列值之和

    聚合函数有两种写法:

    1.SELECT AVG(math) FROM grade ;

    2.起别名

    SELECT AVG(math) as avgmath from grade;

    聚集不同值(单个数值只取一次)

    SELECT AVG(DISTINCT age) from grade;

    group by  分组 

    group by + 聚合函数(统计分组的信息)

    group_concat(字段名)可以作为一个输出字段来使用,

    group by + with rollup(在最后新增一行,来记录当前列里所有记录的总和)

    过滤分组

    使用HAVIING 关键词

    类似于WHERE 。

    唯一的差别是WHERE过滤行,而HAVING过滤分组。

    有另一种理解方法,WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。

    SELECT COUNT(*),math,chinese FROM grade GROUP BY math,chinese HAVIING math>80 and chinese>90;

    在MySQL中查询语句的顺序:

    查询语句的顺序:

    SELECT > 列,列 > FROM > 表名 > WHERE > 条件 > GROUP BY > 列,列 > HAVING > 条件 > ORDER BY > 列 (ASC|DESC) > LIMIT start,count

    相关文章

      网友评论

          本文标题:正则排序、查询、聚合函数

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