数据库|数据排序和分组

一、排序 ORDER BY

①作用:对读取的数据进行排序
②通用语法:

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

注:

  • 可以添加 WHERE…LIKE 子句来设置条件
  • 使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。

③例子:获取 htmlid 表中 title 的数据

  • 默认升序排序:
    在这里插入图片描述
  • 降序排序:
    在这里插入图片描述
  • 带WHERE…LIKE语句
    在这里插入图片描述
    注意:要先用WHERE…LIKE语句过滤信息,再进行ORDER BY排序处理信息。

二、分组 GROUP BY

①通用语法

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

②直接上例子:将数据按照grade字段分组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(注:查询每组最大的user_id以及当前组内容。那个max是个函数,这里先不做介绍,它的作用是找出 括号中 的列 的 最大值,先这么理解就行)

③非常规用法
在这里插入图片描述
当查询多了 id 一列时,数据按照grade分组后,grade一列是相同的,max(user_id)按照数据进行计算也是唯一的,id一列是如何取值的?id字段的选取是按照mysql存储的检索数据匹配的第一条。
结论:当group by 与聚合函数,同时非聚合字段同时使用时,非聚合字段的取值是第一个匹配到的字段内容,即id小的条目对应的字段内容。
④WITH ROLLUP
作用:在group分组字段的基础上再进行统计数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Geekst/article/details/90299598
今日推荐