openGauss学习笔记-25 openGauss 聚集函数

news/2025/1/12 20:40:03/

文章目录

    • openGauss学习笔记-25 openGauss 聚集函数
      • 25.1 sum(expression)
      • 25.2 max(expression)
      • 25.3 min(expression)
      • 25.4 avg(expression)
      • 25.5 count(expression)
      • 25.6 count(*)
      • 25.7 delta
      • 25.8 mode() within group (order by value anyelement)

openGauss学习笔记-25 openGauss 聚集函数

25.1 sum(expression)

描述:所有输入行的expression总和。

返回类型:

通常情况下输入数据类型和输出数据类型是相同的,但以下情况会发生类型转换:

  • 对于SMALLINT或INT输入,输出类型为BIGINT。
  • 对于BIGINT输入,输出类型为NUMBER 。
  • 对于浮点数输入,输出类型为DOUBLE PRECISION。

示例:

openGauss=# SELECT SUM(amount) FROM customer_t1;sum
-------14200
(1 row)

25.2 max(expression)

描述:所有输入行中expression的最大值。

参数类型:任意数组、数值、字符串、日期/时间类型、IPV4和IPV6地址(INET型和CIDR型)。

返回类型:与参数数据类型相同

示例:

openGauss=# SELECT MAX (c_customer_sk) FROM customer_t1;max
------9976
(1 row)

25.3 min(expression)

描述:所有输入行中expression的最小值。

参数类型:任意数组、数值、字符串、日期/时间类型、IPV4和IPV6地址(INET型和CIDR型)。

返回类型:与参数数据类型相同

示例:

openGauss=#  SELECT MIN (c_customer_sk) FROM customer_t1;
min
------3869
(1 row)

25.4 avg(expression)

描述:所有输入值的均值(算术平均)。

返回类型:

对于任何整数类型输入,结果都是NUMBER类型。

对于任何浮点输入,结果都是DOUBLE PRECISION类型。

否则和输入数据类型相同。

示例:

openGauss=# SELECT AVG(AMOUNT) FROM customer_t1;avg
-----------------------2366.6666666666666667
(1 row)

25.5 count(expression)

描述:返回表中满足expression不为NULL的行数。

返回类型:BIGINT

示例:

openGauss=# SELECT COUNT(c_customer_id) FROM customer_t1;count
-------7
(1 row)

25.6 count(*)

描述:返回表中的记录行数。

返回类型:BIGINT

示例:

openGauss=# SELECT COUNT(*) FROM customer_t1;
count
-------8
(1 row)

25.7 delta

描述:返回当前行和前一行的差值。

参数:numeric

返回值类型:numeric

25.8 mode() within group (order by value anyelement)

描述:返回某列中出现频率最高的值,如果多个值频率相同,则返回最小的那个值。排序方式和该列类型的默认排序方式相同。其中value为输入参数,可以为任意类型。

返回类型:与输入参数类型相同。

示例:

openGauss=# select mode() within group (order by value) from (values(1, 'a'), (2, 'b'), (2, 'c')) v(value, tag);mode
------2
(1 row)
openGauss=# select mode() within group (order by tag) from (values(1, 'a'), (2, 'b'), (2, 'c')) v(value, tag);mode
------a
(1 row)

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

图片


http://www.ppmy.cn/news/990196.html

相关文章

行为型-备忘录模式(Memento Pattern)

说明 备忘录模式是一种行为型设计模式,通过捕获一个对象的内部状态,并在该对象之外保存这个状态,以便在需要时恢复对象到原先的状态。备忘录模式包含三个核心角色:。 发起人(Originator):负责…

使用Streamlit快速搭建和共享交互式应用

大家好,在数据科学和机器学习领域,向他人展示见解和分享结果与分析本身同样重要,然而创建交互式和用户友好型的应用程序通常需要复杂的框架和耗时的开发过程。Streamlit是一个Python库,它简化了以数据为重点的网络应用程序的创建过…

【雕爷学编程】MicroPython动手做(14)——掌控板之OLED屏幕2

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

《向量数据库指南》:向量数据库Pinecone如何集成Elasticsearch

目录 上传嵌入模型 上传数据集 创建嵌入 将Elasticsearch索引移动到Pinecone 概要 是一个强大的开源搜索引擎和分析平台,广泛用作基于关键字的文本搜索的文档存储。 Pinecone是一个广泛用于生产应用程序的向量数据库,例如语义搜索、推荐系统和威胁检测,需要在数亿甚…

【COlor传感器】通过扰动调制光传感实现智能光传输的占用分布估计研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

libuv库学习笔记-filesystem

Filesystem 简单的文件读写是通过uv_fs_*函数族和与之相关的uv_fs_t结构体完成的。 note libuv 提供的文件操作和 socket operations 并不相同。套接字操作使用了操作系统本身提供了非阻塞操作,而文件操作内部使用了阻塞函数,但是 libuv 是在线程池中调…

使用kafka-clients操作数据(java)

一、添加依赖 <!-- kafka-clients--><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.5.1</version></dependency> 二、生产者 自定义分区&#xff0c;可忽略 …

绕过TLS/akamai指纹护盾

文章目录 前言TLS指纹什么是TLS指纹测试TLS指纹绕过TLS指纹使用原生urllib使用其他成熟库&#xff01;&#xff01;修改requests底层代码 Akamai指纹相关&#xff08;HTTP/2指纹&#xff09;什么是Akamai指纹测试Akamai指纹绕过Akamai指纹使用其他成熟库 实操参考 前言 有道是…