返回顶部
首页 > 资讯 > 精选 >怎么掌握SQL聚合、分组和排序
  • 266
分享到

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

2023-06-25 14:06:40 266人浏览 独家记忆
摘要

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

这篇文章主要介绍“怎么掌握sql聚合、分组和排序”,在日常操作中,相信很多人在怎么掌握SQL聚合、分组和排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么掌握SQL聚合、分组和排序”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、聚合查询

在访问数据库时,经常要对表中的某列数据进行统计汇总,如求和、最大值、最小值、平均值等,这时就需要使用聚合函数,所谓聚合函数,就是用于汇总的函数,聚合就是将多行汇总为一行,

常见的聚合函数如下:

1、COUNT 函数

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

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

SELECT COUNT(*) FROM users;

注意: COUNT(*)会得到包含空值NULL的数据行数,若想排除包含NULL的数据行,可以使用count(字段名),会得到NULL之外的数据行数。

SELECT COUNT(user_name) FROM users;

2、SUM 函数

用于计算任意列中数据的和。

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

SELECT sum(age) FROM users;

3、AVG 函数

用于计算任意列中数据的平均值。

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

SELECT AVG(age) FROM users;

4、MAX 函数和 MIN 函数

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

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

SELECT MAX(age),MIN(age) FROM users;

注意: MAX函数和MIN函数几乎适用于所有数据类型的列,SUM函数和AVG函数只适用于数值类型的列。

二、分组查询

聚合函数是对表中所有数据进行统计汇总,还可以使用GROUP BY子句先把数据分成若干组,再进行统计汇总。

语法格式:

SELECT <字段名>,... FROM <表名> GROUP BY <字段名>,...;

例如,按照用户所在城市进行分组统计每个城市用户的和:

SELECT city,count(*) FROM users GROUP BY city;+-------+----------+| city  | count(*) |+-------+----------+| 北京  |       60 || 上海  |       45 || NULL  |       80 || 济南  |       12 |+-------+----------+

通过结果可以看出,字段为NULL的也会被列为一个分组。如果想要排除在外,可以使用WHERE子句。

SELECT city,count(*) FROM users WHERE city IS NOT NULL GROUP BY 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聚合、分组和排序”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么掌握SQL聚合、分组和排序

本文链接: https://lsjlt.com/news/305296.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么掌握SQL聚合、分组和排序
    这篇文章主要介绍“怎么掌握SQL聚合、分组和排序”,在日常操作中,相信很多人在怎么掌握SQL聚合、分组和排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么掌握SQL聚合、分组和排序”的疑惑有所帮助!接下来...
    99+
    2023-06-25
  • SQL 聚合、分组和排序
    目录一、聚合查询1、COUNT 函数2、SUM 函数3、AVG 函数4、MAX 函数和 MIN 函数二、分组查询三、对聚合结果进行过滤1、HAVING 子句的构成要素四、对查...
    99+
    2024-04-02
  • PostgreSQL聚合函数的分组排序怎么使用
    本篇内容介绍了“PostgreSQL聚合函数的分组排序怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!聚合函数用于汇总的函数。COUN...
    99+
    2023-06-30
  • SQL怎么构造动态分组和聚合查询
    动态分组和聚合查询是通过使用CASE语句来实现的。CASE语句可以根据条件返回不同的结果,从而实现动态的分组和聚合查询。 下面是一个...
    99+
    2024-04-29
    SQL
  • PostgreSQL聚合函数的分组排序使用示例
    目录聚合函数COUNTSUM、AVGMAX、MIN聚合函数+DISTINCTGROUP BYHAVINGORDER BY聚合函数 用于汇总的函数。 COUNT COUNT,计...
    99+
    2024-04-02
  • 排序,分组和集合操作
    排序操作排序是计算机承担的最基本操作之一,尤其是在数据库处理领域,oracle也不例外。可能需要oracle排序数据的操作包括以下几种;(1)创建一个索引(2)通过group by,unique或disti...
    99+
    2024-04-02
  • Mariadb中聚合函数和分组函数怎么使用
    这篇文章主要讲解了“Mariadb中聚合函数和分组函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mariadb中聚合函数和分组函数怎么使用”吧!聚合函数当我们需要汇总表中的数据而...
    99+
    2023-06-28
  • mysql分组排序怎么查
    在 mysql 中,可以通过使用 group by 和 order by 子句对结果集进行分组和排序。首先,使用 group by 子句按指定列或表达式分组,然后使用 order by ...
    99+
    2024-05-30
    mysql 聚合函数
  • SQL中分组依据和排序依据的区别
    在这篇文章中,我们将了解 SQL 中 group by 和 order by 的区别。GROUP BY它是用于对具有相同值的行进行分组。它可以在 CREATE VIEW 语句中使用。在 select 中语句,必须在“ORDER B...
    99+
    2023-10-22
  • SQL中怎么实现行号排序和分页
    SQL中怎么实现行号排序和分页,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(一)行号显示和排序  1.SQL Server的行号 ...
    99+
    2024-04-02
  • SQL中怎么实现表中字段的组合累加排序
    这篇文章给大家介绍SQL中怎么实现表中字段的组合累加排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。有表如下:1      10   &nbs...
    99+
    2024-04-02
  • mysql怎么先分组后排序
    在mysql中实现先分组后排序的方法在mysql中实现按实际大小进行排序的方法首先,在命令行中启动MySQL服务;service mysql start  MySQL服务启动后,在命令行中输入mysql的用户名和密码登录到MySQL;mys...
    99+
    2024-04-02
  • SQL分组函数group by和聚合函数COUNT、MAX、MIN、AVG、SUM是什么以及怎么用
    本篇内容主要讲解“SQL分组函数group by和聚合函数COUNT、MAX、MIN、AVG、SUM是什么/用法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学...
    99+
    2024-04-02
  • mysql怎么分组查询并排序
    要在MySQL中进行分组查询并排序,可以使用GROUP BY和ORDER BY子句。 例如,假设我们有一个名为"emplo...
    99+
    2024-04-09
    mysql
  • Mariadb聚合函数及分组查询怎么使用
    这篇文章主要介绍“Mariadb聚合函数及分组查询怎么使用”,在日常操作中,相信很多人在Mariadb聚合函数及分组查询怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mariadb聚合函数及分组查询怎...
    99+
    2023-06-27
  • java怎么合并两个数组并排序
    你可以使用Java中的Arrays类的sort()方法来对两个数组进行合并和排序。以下是一个示例代码:```javaimport j...
    99+
    2023-09-29
    java
  • Java集合框架和数组的排序是什么
    这篇文章将为大家详细讲解有关Java集合框架和数组的排序是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。根据约定,在使用java编程的时候应尽可能的使用现有的类库,当然你也可以自己编写一...
    99+
    2023-06-17
  • MySQL单表查询操作实例详解【语法、约束、分组、聚合、过滤、排序等】
    本文实例讲述了MySQL单表查询操作。分享给大家供大家参考,具体如下: 语法 一、单表查询的语法    SELECT 字段1,字段2... FROM 表名  &nbs...
    99+
    2024-04-02
  • MYSQL怎么实现分组排序功能
    这篇文章主要讲解了“MYSQL怎么实现分组排序功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MYSQL怎么实现分组排序功能”吧! ...
    99+
    2024-04-02
  • mysql分组排序问题怎么解决
    在MySQL中,可以使用GROUP BY子句将数据按照指定的列进行分组。然后可以使用ORDER BY子句对每个分组内的数据进行排序。...
    99+
    2024-04-09
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作