怎么掌握SQL聚合、分组和排序

技术怎么掌握SQL聚合、分组和排序这篇文章主要介绍“怎么掌握SQL聚合、分组和排序”,在日常操作中,相信很多人在怎么掌握SQL聚合、分组和排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

本文主要介绍“如何掌握SQL聚合、分组和排序”。在日常操作中,相信很多人对于如何掌握SQL聚合、分组、排序都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“如何掌握SQL聚合、分组、排序”的疑惑!接下来,请和边肖一起学习!

00-1010在访问数据库时,往往需要对表中某一列的数据进行统计汇总,如总和、最大值、最小值、平均值等。这时候就需要用到聚合函数,聚合函数就是汇总的函数,聚合就是把多行汇总成一行。

常见的聚合函数如下:

一、聚合查询

count函数用于记录统计表中的行数。

例如,计算全部数据的行数:

从用户中选择计数(*);注意: (*)将获得空值的数据行数。如果要排除具有空值的数据行,可以使用计数(字段名)来获取非空的数据行数。

从用户中选择计数(用户名);00-1010用于计算任何列中的数据总和。

例如,计算所有用户的年龄之和:

从用户中选择总和(年龄);00-1010用于计算任何列中数据的平均值。

例如,计算所有用户的年龄平均值:

从用户中选择年龄;

1、COUNT 函数

MAX函数用于计算任意一列数据的最大值,MIN函数用于计算任意一列数据的最小值。

例如,计算所有用户中的年龄的最大值和最小值:

从用户中选择最大(年龄),最小(年龄);注意:函数和MIN函数几乎适用于所有数据类型的列,而SUM函数和AVG函数只适用于数值类型的列。

00-1010聚合函数是对表中所有数据进行统计汇总。您也可以使用GROUP BY子句将数据分成几个组,然后进行统计汇总。

语法格式:

选择字段名称,FROM表名GROUPBY字段名,例如,按照用户所在城市进行分组统计每个城市用户的和:

选择城市,从用户组中计数(*)城市;

- -

|城市|计数(*)|

- -

|北京|60|

|上海|45|

|空|80|

|济南| 12

-结果显示,具有空值的字段也将被列为一个组。如果您想被排除,可以使用WHERE子句。

选择城市,从用户列表中计数(*)城市不为空组BYnb

sp;city;

三、对聚合结果进行过滤

当我们使用GROUP BY子句分组的时候,有时候就需要对分组的聚合结果进行过滤,我们可能首先会想到使用WHERE子句,其实并不是,而是用HAVING子句,HAVING的作用和WHERE一样,都是起到过滤的作用,只不过WHERE是用于数据行的过滤,而HAVING则用于分组聚合结果的过滤。

例如,按照用户的所在城市进行分组,并且筛选分组中用户数量大于40的组:

SELECT city,COUNT(*) AS num FROM users GROUP BY city HAVING num>40;

再比如:按照用户的所在城市进行分组,并且筛选分组中用户平均年龄小于25的组。

SELECT city,AVG(age) AS avg_age FROM users GROUP BY city HAVING avg_age<25;

1、HAVING 子句的构成要素

HAVING子句中能够使用的3种要素:

  • 常数

  • 聚合函数

  • GROUP BY子句中指定的列名(即聚合键)

四、对查询结果进行排序

SQL查询中可以用到排序,对数据进行升序(ASC)或降序排列(DESC),默认是升序。

语法格式:

SELECT <字段名>,... FROM <表名> ORDER BY <字段名> ASC/DESC,...;

例如:对users表中的记录按照年龄升序排列:

SELECT * FROM users ORDER BY age ASC;

注意: 升序ASC可以省去不写,但是降序DESC必须要写。

例如,对users表中的记录按照年龄降序排列:

SELECT * FROM users ORDER BY age DESC;

1、 指定多个排序键

ORDER BY子句中可以指定多个排序键,例如,对users表中的记录按照年龄降序、注册时间升序排列:

SELECT * FROM student ORDER BY age DESC,register_time ASC;

多个字段排序时中间用“,”隔开。

2、 使用聚合函数排序

 ORDER BY子句中还可以使用聚合函数的结果进行排序。

例如,按照用户的所在城市进行分组,并且按照分组的用户数量进行排序:

SELECT city,COUNT(*) AS num FROM users GROUP BY city ORDER BY num;

到此,关于“怎么掌握SQL聚合、分组和排序”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/80628.html

(0)

相关推荐

  • g的单位,kb、M、G、、T的换算单位

    技术g的单位,kb、M、G、、T的换算单位B,M和G的转换关系为1G=1024M,1M=1024KBg的单位。 M,G分别是MB和GB的缩写。KB,MB,GB是流单位,并且有B(字节),它是1024二进制。转换关系为1G

    生活 2021年10月25日
  • rhel6.4-11.2.0.3-RAC如何搭建单节点DG

    技术rhel6.4-11.2.0.3-RAC如何搭建单节点DG这篇文章主要为大家展示了“rhel6.4-11.2.0.3-RAC如何搭建单节点DG”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一

    攻略 2021年11月16日
  • 怎么编写Prometheus配置文件prometheus.yml

    技术怎么编写Prometheus配置文件prometheus.yml小编给大家分享一下怎么编写Prometheus配置文件prometheus.yml,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!默认情

    攻略 2021年11月21日
  • 怎么进行数据库账号管理及权限分配

    技术怎么进行数据库账号管理及权限分配怎么进行数据库账号管理及权限分配,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在使用数据库过程中,我们通常需要添加账号以

    攻略 2021年12月2日
  • 戛然而止是什么意思,“戛然而止”的“戛”是什么意思

    技术戛然而止是什么意思,“戛然而止”的“戛”是什么意思意思是:象声词一戛然而止是什么意思、戛的组词:戛然、戛玉、摩戛、戛云、戛击、排戛、嘐戛、磨戛、戛羹、交戛、戛齿、戛敔、铿戛、硗戛、戛触、相戛、戛摩、戛服、戛磨、击戛二

    生活 2021年10月25日
  • 三戒是哪三戒,谁来回答下哪三戒哪四律!

    技术三戒是哪三戒,谁来回答下哪三戒哪四律!君子有三戒 孔子,在生活上主张,君子有三条戒规:少年时戒美色;壮年时戒殴斗;老年时戒贪图三戒是哪三戒。“君子有三戒,少之时,血气未足,戒之在色;及其壮也,血气方刚,戒之在斗;及其

    生活 2021年10月22日