SELECT详解——过滤、聚合、分组、排序

数据库管理员在日常工作中,查询数据最常用的就是SELECT语句。SELECT语句最简单的格式如下:

通过以上SELECT语句,查询到了TBH表中所有记录的ZL(坐落)和SZCC(所在层次)。

一、过滤

一般而言,在使用SELECT语句时,不需要查询所有记录,而是有选择的查询特定的记录,这时就需要用到过滤语句。例如,需要找到所在层次为1的记录:

这里加入了WHERE条件,将所在层次为1的记录过滤了出来。

二、聚合

需要查询记录的数量、某字段最大值、某字段最小值、某字段总和、某字段平均值就需要用到聚合函数。

所在层次为1的数量:

层号最大值:

层号最小值:

实测建筑面积总和:

实测建筑面积平均值:

三、分组

如果需要查询每一层的数量,笨一点的方法,可以用如下语句:

也可以用更简单的分组语句:

在这里,GROUP BY将各个层号的记录进行了分组,可以通过COUNT来查询每一个层号的数量。

需要注意的是,用GROUP BY语句查询时,查询的内容只能是GROUP BY之后的字段以及其他字段的聚合函数(即COUNT、MAX、MIN、SUM、AVG),否则语句无法执行。

四、排序

排序就比较容易理解了,是以ORDER BY后的字段进行排序的。

先用GROUP BY计算出各个层号的数量,然后根据数量排序:

也可以用倒序:

五、多个条件的过滤、分组和排序

过滤、分组和排序是可以用多个条件的,示例如下。

多条件过滤,层号和所在单元均为1:

多条件分组,根据单元和层号排列组合进行分组:

多条件排序,根据房屋编码、坐落进行排序,优先房屋编码,房屋编码相同的按坐落排序:

六、组合条件查询

过滤(WHERE)、分组(GROUP BY)和排序(ORDER BY)是可以组合进行查询的,两两组合或三个一起用都可以:

需要注意的是,这些语句是又先后顺序的,按照如下顺序进行执行的:WHERE、GROUP BY、ORDER BY。即先用WHERE过滤出符合条件的记录,再用GROUP BY 将过滤出来的记录进行分组,最后用ORDER BY把过滤的记录或分组的记录进行排序。

灵活运用这些语句,可以意想不到的轻松愉快。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180131G1IDGU00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区