SQL窗口函数与聚合表达式

PG系列5-SQL高级特性2——聚合函数和窗口函数 文章目录1、聚合函数1.1 string_agg函数1.2 array_agg函数 1、聚合函数 聚合函数可以对结果集进行计算,常用的聚合函数有 avg()、sum()、min()、max()、count()等,本节 将介绍PostgreSQL两个特殊功能的聚合函数并给出测试示例。 在介绍两个聚合函数之前,先来看一个应用场景,假如一 张表有以下数据: 中国 台北 中国 香港 中国 上海 日本 东京 日本 大阪 要求得到如下结果集: 中国 台北,香港,上海 日本 . 阅读详情

SQL窗口函数与聚合表达式


以下梳理SQL中常用的两种分析函数的使用,窗口函数和聚合表达式,这里把用于分组计算、排序、提取并需要在函数后直接使用over开窗的分析函数归为窗口函数,而使用聚合函数的分组、排序等语句称为聚合表达式(有些聚合表达式后面也可以用over来划定范围,另外,一些用于统计等功能的聚合函数如corr、stddev等由于使用方式与聚合函数基本相同也没有在这篇中进行整理),以上是根据学习习惯进行的分类,实际使用中这些函数常被称为“分析函数”。对不同的数据库这些函数支持的情况不同,这里主要参考Hive和PostgreSQL中的相关函数。

1. 窗口函数

窗口函数(Window Function)是主要用于分组聚合计算或排序,“窗口”的含义是“范围”,即先按照某列进行圈定,在根据函数的功能进行计算排序等。

窗口函数的基本形式

# 函数 over 窗口
<窗口函数> over (partition by <用于分组的列名>
                order by <用于排序的列名>)
                <起止行描述的窗口子句>

over后面的部分用于“开窗”——指定范围和顺序,有两种方式 over(distribute by…sort by…) 和 over(partition by…order by…),它们是固定搭配。
order by 或 sort by 后面是窗口子句,一般以 rows between 开始,用于描述选取行的范围,只能在order by后面而不能单独出现,主要有:

  • PRECEDING:往前
  • FOLLOWING:往后
  • CURRENT ROW:当前行
  • UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDED FOLLOWING:表示到后面的终点

例如 rows between 3 PRECEDING and 1 FOLLOWING就表示向前取3行及向后取1行,rows between CURRENT ROW and UNBOUNDED FOLLOWING就表示从当前行开始取到之后所有行。

1.1 基本聚合函数的窗口计算

窗口函数与基本的聚合计算(聚合函数 + group by)的最大不同是窗口函数不改变原表中记录的数量(行数),以count()函数为例:

-- 如果用聚合函数和 group by,聚合字段每一类会形成一行记录,返回一条结果
select company, count(staff_id) from com_info where c_time = '2020-02-29' group by company;

-- 如果使用窗口函数,则返回记录的数量与原表的条数是一样的
select company, count(staff_id)  over (partition by company order by district)
from com_info where c_time = '2020-02-29';
1.2 排序功能的窗口函数

rank()、dense_rank()和 row_number()是用于排序的窗口函数,这些函数的over中不能写窗口子句。

  • row_number()从1开始,按照顺序,生成分组内记录的序列号,row_number()值不会重复,当排序值相同时,按照表中记录的顺序进行排序;
  • rank() 生成数据项在分组中的排名,排名相等会占用下一名次的位置(排名如:1,2,2,4);
  • dence_rank() 生成数据项在分组中的排名,排名相等不占用下一名次的位置(排名如:1,2,2,3)
select staff_id, rank() over(partition by department order by staff_his_perf) as perf_rank
from stf_pr_info where c_time = '2020-02-01_2020-02-29'

一个示例,问题是:用户登录日志表为user_id, log_id, session_id, plat 用sql查询近30天每天平均登录用户数量,以及用sql查询出近30天连续访问7天以上的用户数量

select user_id,max(count_date_on)
from(
(select user_id, count(date_on) count_date_on
from 
(select user_id,log_id,row_number() over(partition by user_id order by log_id desc) rnk,log_id-(max(log_id)-rnk) date_on
from TB
group by user_id ) A
group by user_id,date_on))B
group by user_id
having max(count_date_on)>=7

另一个例子,计算用户最长连续登陆的天数:

select UID,max(cnt) as cnt
from (
select UID,Grp_No,count(*) as cnt
from (
select UID,LoadTime,(Day(LoadTime)-ROW_NUMBER() OVER (Partition By UID Order By UID,LoadTime)) as Grp_No 
from #Tmp_Data) a
group by UID,Grp_No) b 
group by UID

Hive中可以在over中使用聚合函数:

select staff_id, rank() over (order by sum(stf_perf_cnt)) as staff_his_od
from TB
group by staff_id;
1.3 分桶函数ntile

ntile将有序分区的行分配到指定数量的大致相等的桶中。 它从一个开始为每个组分配一个桶号。 对于组中的每一行,ntile函数分配一个桶号,表示该行所属的组。大致相等意味着分组结果之间的方差会尽可能小,所有桶中的记录要么都相同,要么从某一个记录较少的桶开始后面所有捅的记录数都与该桶的记录数相同。,例如53条数据被分成5组,会是11、11、11、10、10,而不会是11、11、11、11、9。
一个示例,1000家店铺的价格数据。计算价格排名前30%和后70%的的店铺的平均价格:

-- 1 把记录按价格顺序拆分成10片
drop table if exists test_dp_price_rk;
create table test_dp_price_rk
select id, price, NTILE(10) over (order by price desc) as rn
from test_dp_price;

-- 2 按片取30%和70%,分别计算平均值
select new_rn,
max(case when new_rn=1 then 'avg_price_first_30%' when new_rn=2 then 'avg_price_last_70%' end) 
as avg_price_name,
avg(price) avg_price
from 
(select id, price, rn,
case when rn in (1,2,3) then 1 else 2 end as new_rn
from test_dp_price_rk)a group by new_rn;
1.4 偏移函数

lag()和lead()函数可以在同一次查询中取出同一字段的前N行的数据(lag)或后N行的数据(lead)作为独立的列,基本语法是

lag(col,n,DEFAULT) --窗口内向上n行的值,如果向上第n行为空值(null)时取DEFAULT,n默认为1,DEFAULT默认为null
lead(col,n,DEFAULT) --窗口内向下n行的值,如果向下第n行为空值(null)时取DEFAULT,n默认为1,DEFAULT默认为null

一个示例,在消费记录中取出最近2次消费金额

select sal_time, cust_id, sal, lag(sal,1,0) over (partition by cust_id order by sal_time) as lest_sal
from cust_info_base where sal_time between '2020-02-01' and '2020-02-29'
1.5 first_value 和 last_value

first_value取窗口内的第一条记录,last_value取窗口内的最后一条记录,有两个参数(columnName, isSkipNull=false);例如取出部门中入职时间最早和最晚的员工:

select dep_id, first_value(join_time) over (partition by dep_id order by join_time) as ld_time,
last_value(join_time) over (partition by dep_id order by join_time) as yn_time
from staff_info_base
where c_time = '2020-02-29'
1.6 cume_dist 和 percent_rank

cume_dist 用于计算窗口内小于等于当前值的行数与分组内总行数的比值,即统计值在窗口范围内的分位置,例如计算某员工收入在全公司和部门内的分位置:

select part_id, staff_name, compen, cume_dist() over (order by compen) as pct_company,
cume_dist() over (partition by part_id order by compen) as pct_part 
from staff_payment_his where c_time = '2020-02-29'
order by part_id, compen

percent_rank用于计算百分比排名,这里的百分比排名从0开始,即(x - 1) / (the number of rows in the window or partition - 1),一个示例计算员工收入的百分比排名及与整体收入分位置的比较:

select part_id, staff_name, compen,
percent_rank() over (partition by part_id order by compen) as pct_rank_part,
precentile_cont(0) within group(order by compen desc) over(partition by part_id) max_com,
precentile_cont(0.25) within group(order by compen desc) over(partition by part_id) b75_com,
precentile_cont(0.5) within group(order by compen desc) over(partition by part_id) medium_com,
precentile_cont(0.75) within group(order by compen desc) over(partition by part_id) b25_com
from staff_payment_his where c_time = '2020-02-29'
order by part_id, compen
2. 聚合表达式
2.1 有序集的聚合

对有序排列的聚合主要用于统计分位值和众数,包括 percentile_cont、percentile_disc、mode,(Hive中是 percentile 和 percentile_approx,percentile 的功能和用法与 pg 中的 percentile_cont类似,percentile_approx则可以设置近似程度,官方文档提示,Use PERCENTILE_APPROX if your input is non-integral.)

-- 计算分组中的中位值/分位值
select staff_rank, precentile_cont(0.5) within group(order by staff_perf_cnt) as perf_medium 
from stf_pr_info where c_time = '2020-02-01_2020-02-29'

percentile_disc与percentile_cont略微的不同是,如果某个求取分位值上没有对应的记录,则percentile_cont会计算最接近的两个记录的均值,而percentile_disc则取排序上最接近的一个值(如升序排列则向上取)。

下面的示例计算各部门在职时长的众数和这个众数的人数,由于聚合函数之间是不允许嵌套的,因此需要用连表的方式进行处理:

select t1.part_id as de_part,
count(t1.staff_id) as stf_cnt,
count(case when t1.on_wtime = t2.mode_tm then t1.staff_id else null end) as mode_cnt
from
(select part_id, staff_id, on_wtime
from public.dt_link_agent
where c_time = '2020-02-29') t1
left join
(select part_id,
mode() within group(order by on_wtime) as mode_tm
from public.dt_link_agent
where c_time = '2020-02-29'
group by part_id) t2
on t1.part_id = t2.part_id
group by de_part
2.2 拼接功能的聚合

string_agg 可以进行字符串的拼接操作,例如排序并拼接一个中心大部门下的所有二级部门:

select org_id, string_agg(part_id,',' order by part_id) as dep
from public.dt_link_agent
where c_time = '2020-02-29'
group by org_id

array_agg 可以拼接成一个列表(在 pg 中用{} 表示),但即使用group by聚合,这个拼接也需要distinct进行去重:

select org_id, array_agg(distinct part_id) as dep
from public.dt_link_agent
where c_time = '2020-02-29'
group by org_id

如果需要将列表转换成字符串则需要函数 array_to_string。
此外 pg 中还有 json_agg、json_object_agg、xmlagg 等,处理各种数据结构。

2.3 筛选和过滤

pg 中支持使用 filter 进行筛选过滤,例如仅统计中心组织下,员工人数多于200人的部门名单:

select t.org_id as org_id, string_agg(t.part_id, ',' order by t.part_id) 
filter (where t.staff_cnt > 200)
from 
(select org_id, part_id, count(staff_id) as staff_cnt
from public.dt_link_agent
where c_time = '2020-02-29'
group by org_id, part_id) t 
group by org_id
参考资料:

Hive Operators and User-Defined Functions (UDFs)
9.20. Aggregate Functions
PostgreSQL 聚合表达式 FILTER , order , within group 用法
SQL Server Ntile()函数
SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
PERCENT_RANK 窗口函数
Oracle所有分析函数

窗口函数sum over 这段 SQL 语句利用窗口函数和条件聚合来计算每个分区内符合特定条件的累计次数。在实际使用中,这样的语句可以用于统计某些特定类型的累计交易次数等场景。 阅读详情

相关推荐

SQLite 表达式

SQLite 是一种轻量级的数据库管理系统,广泛用于各种应用程序中,包括移动应用、桌面应用和网页应用。SQLite 使用一种称为 SQL(结构化查询语言)的语言来执行各种数据库操作,包括创建、查询、更新和删除数据库中的数据。在 SQL 中,表达式是用于计算或操作数据的一种语句,可以用于 SELECT、WHERE 和 HAVING 子句中,也可以用于更新或删除操作中。

csbysj2020的博客 363

SQL聚合函数和窗口函数

如果数据缺失的比例超过20%,则可以考虑删除该列,因为没有足够的准确数据来根据该列中的值得出准确的结论。这个查询首先根据PARTITION BY city将数据集按照城市划分为3组,每个组都有自己的一组窗口,对于每个分组,每增加一个学生,total_student值加1;如上表,第1行的窗口就包含一行并返回计数为1,第2行的窗口就包含两行并返回计数为2,第3行的窗口就包含三行并返回计数为3。但是,当指定ORDER BY时,组中的行会根据它进行排序,并且对于每一行,都会创建一个窗口,并在该窗口上应用行数。

talle2021的博客 1179

SQL GROUP BY 核心语法、执行逻辑与实战避坑指南

在数据库查询与数据分析中,数据聚合是核心操作,它允许我们将大量明细数据汇总为有意义的统计信息。其基本原理是通过特定的分类标准将数据行划分为不同的组,然后对每个组应用计算函数,从而揭示数据的分布特征与汇总规律。这项技术的核心价值在于能够从海量数据中快速提取关键洞察,支持业务决策和报表生成。在实际应用场景中,它被广泛用于生成销售报表、用户行为分析、财务统计等。本文将聚焦于实现数据聚合的关键字 GROUP BY,深入剖析其与聚合函数(如 SUM、COUNT)的协同工作原理,并详解与之紧密配合的 HAVING 子句

weixin_30516243的博客 395

4.2.7. Aggregate Expressions

4.2.7. Aggregate Expressions 4.2.7.聚合表达式 An aggregate expression represents the application of an aggregate function across the rows selectedby a query. An aggregate function reduces multiple input...

在路上 2768

ABAP CDS WHERE 条件从入门到精通:语法规则、易错点、性能思路与可运行示例

ABAP CDS中的HAVING用法详解 本文系统讲解了HAVING在ABAP CDS中的应用,包括其与WHERE的区别、语法规则及典型场景。HAVING用于对GROUP BY分组后的聚合结果进行过滤,允许使用SUM/COUNT等聚合表达式,而WHERE则用于分组前的明细记录过滤。文章剖析了销售额分析、质量监控和财务对账三类典型应用场景,指出了常见错误(如误将聚合条件写入WHERE)和性能优化建议。最后提供了两种CDS视图(经典View和View Entity)的完整实现代码,以及Open SQL消费示例,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 190

audio框架学习-Audio_Flinger分析

文章目录一、代码位置二、audio服务启动2.1 main服务2.2 audioflinger添加到系统服务中2.3 audioflinger的对外接口 之前记录过audioTrack的笔记,这次继续参考audioFlinger相关的代码并做笔记; 参考文档:https://www.cnblogs.com/innost/archive/2011/01/15/1936425.html和https://blog.youkuaiyun.com/zyuanyun/article/details/60890534?spm=100

永不秃头的程序员的博客 2135

SQL函数-窗口函数-聚合窗口函数

许多常见的聚合函数也可以作为窗口函数使用,包括AVG(),SUM(),COUNT(),MAX()以及MIN()等函数.

shane700的博客 3699

Fusion 360嵌入式外壳建模实战:从草图到可装配结构

参数化三维建模是现代电子结构设计的核心能力,其本质是通过几何约束与特征驱动实现设计意图的精确表达和快速迭代。Fusion 360作为集成CAD/CAM/CAE的云端平台,以时间轴驱动的参数化工作流、基于基准面的草图约束机制和面向制造的特征操作逻辑,显著提升了嵌入式硬件的结构验证效率。该技术价值在于支持工程师在无专业机械背景前提下,独立完成PCB适配、散热布局、接口开孔与装配干涉检查等关键任务,广泛应用于3D打印原型、CNC加工外壳及IoT终端结构开发。本文以ESP32冰箱监控终端为实例,详解从基准定义、草图

weixin_35671843的博客 588

SQL知识梳理(五)常用函数(聚合、条件、窗口)

SQL实际应用中常根据各种条件对数据进行统计、修改或新增列等,这里介绍几个常用的函数:聚合、条件判断和窗口函数,可以解决常见的简单问题

数据挖掘学习梳理 5256

区块链技术在碳足迹数据存证与溯源中的应用深度解析

消费者扫描产品上的二维码,即可通过区块链浏览器查询到该产品的数字碳标签,并追溯其从茶园到货架的每一步碳足迹数据,以及这些数据是如何被智能合约自动计算和认证的,从而建立起强大的品牌信任。如果说哈希链解决了数据的“存”与“证”的问题,那么智能合约则解决了数据“用”与“管”的自动化问题。综上所述,虽然针对“碳足迹数据可追溯性”这一特定应用场景的公开、标准化的性能基准案例尚不丰富,但现有研究和企业级解决方案(特别是联盟链)已经证明,通过合理的技术选型和架构设计,区块链的性能可以满足实际商业需求。

百态·数智思维 | 聚焦大数据、量化与未来AI 1106

SDK报错(1)undefined reference to `f_mount‘

按文中说法是ff.c文件中用了一个if语句来判断是否启用ff.h头文件,但是却没有地方进行宏定义来满足这个if条件。利用SDK读取sd卡时,添加了xilffs库,而且包含了ff.h头文件,还是对fat库的函数报错。网上有的说在ARM v7 gcc linker中添加xilffs的方法可以解决,但我试了没有用。如下图,我们可以在ff.c中自己添加一个宏定义来实现这个条件。最后在赛灵思论坛找到了一个解决方法,原文连接如下。这时候保存编译之后,报错就消失了。ff.c 文件在bsp工程下。

EfunStudy的博客 1481

postgresql笔记010-值表达式

值表达式 值表达式用在各种语法环境中,比如在select命令的目标列表中,在insert, update 中用作新的列值,或者在许多命令 的搜索条件中使用。我们有时候把值表达式的结果叫做标量,以便于一个表达式的结果相区分。因此值表达式也叫作 标量表达式。表达式语法允许对来自基础部分的数值进行算术,逻辑,集合和其他运算。 值表达式具体实现如下: 一个常量或者字面值 一个字段引用 一个位置参数引用(在函数声明体中或预编写的语句中) 一个下标表达式 一个字段选择表达式 一个操作符调用 一个函数调用 一个聚合表达式

609

SCTPPortScan SCTP协议端口扫描、关联地址识别、传输状态检测

Windows:Winsock2+SCTP扩展)。- **SCTP API封装**:Linux下直接调用`socket()`、`connect()`、`getsockopt()`等系统函数,解析`struct sctp_status`和`struct sctp_paddrinfo`获取状态和关联地址。qDebug() << "开始SCTP扫描:" << ipList.size() << "个IP," << ports.size() << "个端口,共" << m_totalTasks << "个任务";

寒寒豆豆软件公司的博客 93

4.2. Value Expressions

4.2. Value Expressions 4.2.值表达式 Value expressions are used in a variety of contexts, such as in the target list of the SELECT command,as new column values in INSERT or UPDATE, or in search conditio...

在路上 511

【AI智能体】AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

congge 3666

机器视觉工程师如何进行高速运动物体捕获

硬件方面使用高帧率相机(如工业相机、高速摄像机)确保充足的光照条件使用高性能计算平台减少处理延迟软件方面背景减除技术快速分离运动物体卡尔曼滤波预测物体轨迹ROI技术减少计算量多线程处理提高实时性实际应用中的关键考量针对特定场景调整参数(如阈值、滤波器参数等)平衡计算资源与实时性要求结合特定领域知识优化算法(如物体运动特性)上述示例代码实现了一个基础的高速物体跟踪系统,通过背景减除和卡尔曼滤波实现对高速物体的检测和跟踪。

zhangzhechun_02的博客 625

铝箔包装袋正反面检测:偏振光源与明治VDS20视觉传感器应用

视觉传感器在工业自动化中用于物体识别与定位,其原理是通过图像采集与处理实现判断。在包装检测领域,高反光材质如铝箔会干扰成像,偏振光源技术能有效抑制镜面反射,提升图像对比度。明治VDS20一体式视觉传感器结合偏振方案,可解决铝箔袋正反面检测中的反光与细微差异难题,适用于食品日化产线的高速节拍。该方案通过优化光源与算法,实现稳定检测,并可扩展至缺陷识别与读码功能。

weixin_34294649的博客 451

【Matlab光伏功率预测】基于GRU门控循环单元的光伏功率时间序列预测(附MATLAB代码)

【Matlab光伏功率预测】基于GRU门控循环单元的光伏功率时间序列预测(附MATLAB代码)

k8291121的博客 1100

Django中聚合表达式

来源:知了课堂 聚合函数笔记: 所有的聚合函数都是放在django.db.models下面。 聚合函数不能够单独的执行,需要放在一些可以执行聚合函数的方法下面中去执行。比如aggregate。示例代码如下: result = Book.objects.aggregate(Avg("price")) 聚合函数执行完成后,给这个聚合函数的值取个名字。取名字的规则,默认是filed+__+...

qq_42092076的博客 245

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ABAP--新语法--Open SQL--第一天-- CONSTANT常量 Host Variable/Expression主变量/表达式 Aggregate Expressions聚合表达式

CONSTANT  常量字段可以用来为内表中的部分字段赋初始值 SELECT carrid, 'S' AS status FROM scarr UP TO 5 ROWS INTO TABLE @DATA(lt_scarr). 当数字太大,不在INT4类型范围内时,会被解释为DEC类型;  当只需要判断数据库表中是否存在特定的记录并且不用取表数据时,可以用常量字段代替 DATA(lv_carrier) = CONV s_carr_id( 'AA' ). SELECT SING

'尤其是十月的风'的博客 1607

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【SQL性能优化新思路】:窗口函数替代子查询的4大优势与实践

掌握SQL性能优化新方法,用窗口函数替代子查询提升效率。详解SQL窗口函数在排名、累计计算等场景的应用,展现其代码简洁、执行高效、逻辑清晰、维护方便四大优势,显著优化复杂查询性能,值得收藏。

CompiWander的博客 659

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ABAP 新语法--Open SQL

SAP Open SQL

谁的博客来着? 6924

postgresql-值表达式

聚集表达式 一个聚集表达式代表一个聚集函数对一个查询选出的行的处理。 一个聚集函数把多个输入缩减为一个输出值, 比如给输入求和或平均。一个聚集表达式的语法是下列之一: aggregate_name (expression) aggregate_name (ALL expression) aggregate_name (DISTINCT expression) aggregate_nam...

深未来技术 301

sql 不能对包含聚合或子查询的表达式执行聚合函数_Mapinfo SQL查询方法和功能函数的使用...

本节主要讲解SQL查询方法和功能函数的应用。SQL查询工具是一个多用途查询工具,在网络规划使用相当频繁,比如将落在相关图层中的点查询出来、将包含在地图中的栅格图层查询出来等等。1、操作符Operator操作符主要实现查询对象及其函数的控制,比如查询满足*.Obj为”XX条件”的数据,即可使用操作符“=”等等。常用的操作符号包括等于“=”、不等于“<>”、包含“Contains”、包含于...

weixin_39834281的博客 928

php mongodb的聚合的表达式,MongoDB聚合

聚合操作处理数据记录并返回计算结果。 聚合操作将多个文档中的值组合在一起,并可对分组数据执行各种操作,以返回单个结果。 在SQL中的 count(*)与group by组合相当于mongodb 中的聚合功能。aggregate()方法对于MongoDB中的聚合,应该使用aggregate()方法。语法aggregate()方法的基本语法如下 ->db.COLLECTION_NAME.aggr...

weixin_39861624的博客 267

[{关键词标签}]SQL在数据分析中的核心应用与优化策略

总之,SQL是实现数据价值挖掘的强大工具。熟练掌握其核心应用并贯彻有效的优化策略,是提升数据分析效率与质量的关键。随着大数据技术的发展,虽然出现了许多新的处理框架,但SQL因其声明式的友好特性和广泛的支持,其地位依然稳固。未来,与云原生数据库、分布式查询引擎更深入地结合,将使得SQL在数据分析领域的应用边界进一步扩展,持续赋能企业做出更数据驱动的智能决策。

localhome5的博客 346
上一篇: 概率论与随机过程笔记(2):离散随机变量(1)
Bingtuu
博客等级 码龄10年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值