开窗函数第一招式(排序聚合我要看顺序)

简介: 先看下我找的题目,ENG OMG 放心 我给安排了中文

先看下我找的题目,ENG OMG 放心 我给安排了中文

44.png

Partitioned Running Totals

Question:

The cats must be ordered first by breed and second by name. They are about to enter an elevator one by one. When all the cats of the same breed have entered they leave.


We would like to know what the running total weight of the cats is.


Return: name, breed, running total weight

Order by: breed, name

Desired output:

name breed running_total_weight
Charlie British Shorthair 4.8
Smudge British Shorthair 9.7
Tigger British Shorthair 13.5
Millie Maine Coon 5.4
Misty Maine Coon 11.1
Puss Maine Coon 16.2
Smokey Maine Coon 22.3
Ashes Persian 4.5
Felix Persian 9.5
Molly Persian 13.7
Alfie Siamese 5.5
Oscar Siamese 11.6

分区运行总数

问题:

猫必须先按品种,后按名字订购。他们正要一个接一个地走进电梯。当所有同品种的猫都进入后,它们就离开。

我们想知道猫的跑步总重量是多少。

期望的输出:

name breed running_total_weight
Charlie British Shorthair 4.8
Smudge British Shorthair 9.7
Tigger British Shorthair 13.5
Millie Maine Coon 5.4
Misty Maine Coon 11.1
Puss Maine Coon 16.2
Smokey Maine Coon 22.3
Ashes Persian 4.5
Felix Persian 9.5
Molly Persian 13.7
Alfie Siamese 5.5
Oscar Siamese 11.6

答案:

select 
  name,
  breed,
  sum(weight) over (partition by breed  order by name asc) as running_total_weight
from 
  cats 

答案完全正确哦,哈哈哈 !


丝路输出:


最近工作用的太多了,踩坑也多,所以一下就做出来了。


我首先看到根据猫的品牌进行区分,每组猫进去后就出去,然后每组猫需要正序排序。


所以按照品牌分区、猫名正序、SUM() + OVER() 就可以完成


这里最主要是利用了开窗函数中添加排序后的特性:具体 默认order的开窗函数frame值是


between UNBOUNDED PRECEDING and CURRENT ROW


译文:第一行 -》 当前行


所以每次排序后我SUM函数取得是本品牌中排名第一的猫 - 当前猫的重量和!


你学费了么?

image.png

练习题的地址“戳我”

我们还有开窗的下一期哦

目录
相关文章
|
安全 Linux Android开发
开源免费!文件传输工具HandShaker最佳替代品来了。
开源免费!文件传输工具HandShaker最佳替代品来了。
|
存储 运维 分布式计算
数据分析和数据开发的区别 - 初始
数据分析和数据开发的区别 初始 数据分析(DA:Data Analysis)和数据开发/数据仓库工程师(DE:Data Extraction)究竟有什么区别,工作职责和工作内容上的差异是什么?
844 0
|
12天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1257 5
|
1天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
11天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1279 87