首页 > 其他分享 >MogDB-openGauss中的聚集与分组操作

MogDB-openGauss中的聚集与分组操作

时间:2024-03-15 15:27:25浏览次数:21  
标签:COUNT MogDB t1 分组 c2 openGauss NULL c1

MogDB/opengauss 中的聚集与分组操作

COUNT:对结果集中的元组数量进行计数,如果是 COUNT(*),那么会统计所有元组(包括 NULL 值)的数量,如果是 COUNT(colname),那么会忽略 NULL 值,只统计非 NULL 值的数量。

SUM:对参数中属性的所有值求和。

AVG:对参数中属性的而所有值取平均值,要求列的类型必须是数值类型,其中 NULL 值将会被忽略。

MAX:对参数中属性求最大值,NULL 值会被忽略。

MIN:对参数中属性求最小值,NULL 值会被忽略。

对表 t1 的所有元组数量进行统计,具体语句如下:

MogDB=# SELECT COUNT(*) FROM t1;
 count
-------
     3
(1 row)

如果给 COUNT 函数的参数指定为表达式(或列值),则只统计表达式结果为非 NULL 值的个数。

对表 t1 的 c2 列中非 NULL 值的个数进行统计,具体语句如下:

MogDB=# SELECT COUNT(c2) FROM t1;
 count
-------
     2
(1 row)

如果在参数中指定了 DISTINCT 关键字,则先对结果中的值去掉重复值,然后再统计数量,如果不指定 DISTINCT,则默认为 ALL。

对表 t1 的 c1 列中非 NULL 值的个数进行统计,去掉重复值,具体语句如下:

SELECT COUNT(DISTINCT t1.c2) FROM t1;

AVG、SUM、MIN/MAX 函数同理。

对表 t1 的 c1 列做求和操作,具体语句如下:

MogDB=# SELECT COUNT(DISTINCT t1.c1) FROM t1;
 count
-------
     2
(1 row)

对表 t1 的 c1 列求平均值,具体语句如下:

MogDB=# SELECT AVG(c1) FROM t1;
        avg
--------------------
 1.3333333333333333
(1 row)

根据表 t1 的 c2 列做分组,求每个分组内 c1 的个数,具体语句如下:

MogDB=# SELECT c2, COUNT(c1) FROM t1 GROUP BY c2;
 c2 | count
----+-------
    |     1
  2 |     2
(2 rows)

根据表 t1 的 c2 列做分组,求每个分组内 c1 的个数,将个数大于 1 的分组投影出来,具体语句如下:

MogDB=# SELECT c2, COUNT(c1) FROM t1 GROUP BY c2 HAVING count(c1) >1;
 c2 | count
----+-------
  2 |     2
(1 row)

标签:COUNT,MogDB,t1,分组,c2,openGauss,NULL,c1
From: https://www.cnblogs.com/renxyz/p/18075454

相关文章

  • MogDB-opengauss中的连接操作-1
    MogDB/opengauss中的连接操作-1如果FROM关键字后由超过2个及以上(含2个)的表参与连接操作,则该查询可以成为连接查询,也可以叫作多表查询。连接查询是SQL种最基本的操作,它的本质是多个表之间做笛卡尔积,借由这个思想又衍生出自然连接、θ连接等。以下以t1、t2、t3几个基......
  • MogDB-openGauss事务处理语句
    MogDB/openGauss事务处理语句事务是由一组SQL语句序列构成的原子操作集合,它具有原子性、一致性、隔离性和持久性的特点。用户在开始执行一个SQL语句时,实际上就已经开始了一个隐式的事务,而SQL语句执行结束,隐式的事务也会根据SQL语句的执行成功与否分別进行提交(Commit)......
  • MogDB-openGauss视图与物化视图
    MogDB/openGauss视图与物化视图一个数据库通常分成外模式、模式和内模式三种模式:外模式:也叫用户模式,是用户所能访问的一组数据视图,和某一应用的逻辑结构有关,是从模式中导出的一个子集,针对某一具体应用控制访问的可见性。模式:数据库内所包含的逻辑结构,包括基本表的定义等。内......
  • MogDB-openGauss中的集合操作
    MogDB/opengauss中的集合操作UNION:并操作,将UNION关键字两段的结果集做并集操作。EXCEPT:差操作,从左侧的结果集中排除掉右侧的结果集。INTERSECT:交集,对两个结果集做取交集操作。对表t1、t2做UNION操作,具体语句如下:MogDB=#SELECT*FROMt1UNIONSELECT*FROMt2;c1......
  • MogDB-opengauss存储过程的修改
    MogDB/openGauss存储过程的修改SQL中没有提供显式的存储过程修改命令,通常需要通过REPLACE关键字来指定使用当前的存储过程替代之前的同名存储过程。将前文定义的存储过程替换为按照地区分组的数量统计,具体语句如下:MogDB=#CREATEORREPLACEPROCEDUREwarehouse_count()L......
  • MogDB-openGauss访问控制简介
    MogDB/openGauss访问控制简介SQL可以针对不同的数据库对象赋予不同的权限,这样就可以限制用户对数据的不必要访问,提高数据访问的安全性。常见的SQL权限如下:SELECT/UPDATE/DELETE/INSERT:访问、修改基本表或视图的权限REFERENCES:在基本表上创建外键约束的权限TRIGGER:在基本......
  • MogDB-openGauss触发器简介(1)
    MogDB/opengauss触发器简介(1)触发器是对应用动作的响应机制,当应用对一个对象发起DML操作时,就会产生一个触发事件(Event)。如果该对象上拥有该事件对应的触发器,那么就会检查触发器的触发条件(Condition)是否满足,如果满足触发条件,那么就会执行触发动作(Action)。事件:触发器的触发事......
  • MogDB-openGauss存储过程的声明
    MogDB/openGauss存储过程的声明存储过程是一组SQL语句和逻辑控制的集合。数据库系统需要支持创建、删除和修改存储过程的语法。存储过程相比普通的SQL命令,具有如下优点:创建的存储过程保存在数据库系统中,在使用时被调出并且在数据库系统本地进行编译执行,一次编译,多次执行,......
  • MogDB openGauss如何实现事务的rollback
    MogDB/openGauss如何实现事务的rollback本文出处:https://www.modb.pro/db/113262数据库最主要的功能就是存储数据,然而我们在进行数据库操作时,却很容易发生误操作数据的情况,那么在MogDB中该如何实现误操作数据恢复呢?本文通过具体示例简要介绍如何通过回滚还原到误操作前的状......
  • MogDB openGauss数据完整性约束简介
    MogDB/openGauss数据完整性约束简介本文出处:https://www.modb.pro/db/124910创建基本表的同时,还可以指定表中数据完整性约束,例如在创建warehouse基本表时,通过分析可以得到如下结论:不同仓库必须有不同的w_id,且w_id不能为NULL。仓库必须有具体的名称,不能为NULL。仓库......