MogDB-opengauss中的聚集与分组操作
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)
MogDB-opengauss中的聚集与分组操作的更多相关文章
- mybatis从数据库中取数据且分组,返回分组数据
mapper.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PU ...
- C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息
在前面几篇文章中,逐步从原有微信的API封装的基础上过渡到微信应用平台管理系统里面,逐步介绍管理系统中的微信数据的界面设计,以及相关的处理操作过程的逻辑和代码,希望从更高一个层次,向大家介绍微信的应用 ...
- Spark中的键值对操作-scala
1.PairRDD介绍 Spark为包含键值对类型的RDD提供了一些专有的操作.这些RDD被称为PairRDD.PairRDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口.例如,Pa ...
- Spark中的键值对操作
1.PairRDD介绍 Spark为包含键值对类型的RDD提供了一些专有的操作.这些RDD被称为PairRDD.PairRDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口.例如,Pa ...
- 第69节:Java中数据库的多表操作
第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...
- C#-MVC开发微信应用(7)--在管理系统中同步微信用户分组信息
在前面几篇文章中,逐步从原有微信的API封装的基础上过渡到微信应用平台管理系统里面,逐步介绍管理系统中的微信数据的界面设计,以及相关的处理操作过程的逻辑和代码.希望从一个更高的层次介绍微信的开发. 在 ...
- Linq分组操作之GroupBy,GroupJoin扩展方法源码分析
Linq分组操作之GroupBy,GroupJoin扩展方法源码分析 一. GroupBy 解释: 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值. 查询表达式: var ...
- MYSQL常用函数以及分组操作
SELECT CONVERT(",SIGNED); SELECT CAST(" AS SIGNED); SELECT ; SELECT LENGTH("姜浩真帅!&quo ...
- Java对MongoDB进行分组操作并统计各个分组的数量
最近在检索MongoDB的数据时需要用到分组操作,由于没有现成的说明文档可参考,只能是在代码中不断调试.摸索前进:目前已现实了Java对MongoDB的分组操作,并统计各个分组的数量.现通过示例详细解 ...
- pandas之分组操作
在数据分析中,经常会遇到这样的情况:根据某一列(或多列)标签把数据划分为不同的组别,然后再对其进行数据分析.比如,某网站对注册用户的性别或者年龄等进行分组,从而研究出网站用户的画像(特点).在 Pan ...
随机推荐
- 探索Terraform实践:优化基础设施管理
Terraform 是管理基础设施及代码(IaC)最常用的工具之一,它能使我们安全且可预测地对基础设施应用更改. Terraform作为一个强大的基础设施即代码工具,为开发人员和运维团队提供了一种简单 ...
- 【aspose-words】Aspose.Words for Java模板语法详细剖析
前言 缘由 aspose-words模板语法再了解 垂死病中惊坐起,小丑竟是我自己.对于aspose-words的使用本狗自以为已炉火纯青,遂在新的迭代任务中毛遂自荐,并在小姐姐面前吹了一个大牛,分分 ...
- Java abstract 小测试
1 package com.bytezreo.abstractTest; 2 3 /** 4 * 5 * @Description abstract 小测试 6 * @author Bytezero· ...
- JVM解析
synize锁升级
- java后端数据接收
restful风格 @RequestMapping("/getTeacherPage/{current}/{limit}") public List<WorkOrder> ...
- a++和++a的运算区别是?
a++和++a 都属于自增运算符, 区别是对变量a的值进行自增的时机不同. a++是先进行取值,后进行自增.++a是先进行自增,后进行取值.
- Handler源码解析
Handler源码解析 一.基本原理回顾 在android开发中,经常会在子线程中进行一些操作,当操作完毕后会通过handler发送一些数据给主线程,通知主线程做相应的操作. 探索其背后的原理:子线程 ...
- AHandler AMessage ALooper消息机制-源码6.0.0以上
AHandler AMessage ALooper消息机制 AHandler是Android native层实现的一个异步消息机制,在这个机制中所有的处理都是异步的,将变量封装到一个消息AMessag ...
- WPF自定义Panel:让拖拽变得更简单
在 WPF 应用程序中,拖放操作是实现用户交互的重要组成部分.通过拖放操作,用户可以轻松地将数据从一个位置移动到另一个位置,或者将控件从一个容器移动到另一个容器.然而,WPF 中默认的拖放操作可能并不 ...
- QT实现参数批量配置
QT实现批量配置 需求 一些参数需要批量化配置 之前搭建的FPGA的寄存器控制模型 使用AXI-lite搭建 直接操作上位机 这里需要一个可以快速配置所有参数的上位机 需要保存文件,可以保留上一次的参 ...