首页 > 数据库 >oracle/dm查询分组中最大的一条数据:ROW_NUMBER()

oracle/dm查询分组中最大的一条数据:ROW_NUMBER()

时间:2024-09-25 09:36:21浏览次数:6  
标签:dm NUMBER number 分组 oracle 查询 id ROW

你可以使用 Oracle 数据库中的 ROW_NUMBER() 窗口函数来实现这个需求。该函数能够在每个分组内对行进行编号,然后我们可以选择每个分组中 number 最大的那一行。

以下是一个示例 SQL 查询,演示如何根据 id 分组,并获取 number 最大的对象:

SELECT id, number, name
FROM (
    SELECT 
        id,
        number,
        name,
        ROW_NUMBER() OVER (PARTITION BY id ORDER BY number DESC) AS rn
    FROM your_table
)
WHERE rn = 1;

在这个查询中:

  1. 内部查询 (FROM your_table) 使用 ROW_NUMBER() 窗口函数对每个 id 分组内的数据进行编号,并且按照 number 降序排列。
  2. ROW_NUMBER() OVER (PARTITION BY id ORDER BY number DESC) 这部分代码会在每个 id 分组内,根据 number 降序为每行分配一个唯一的行号。
  3. 外部查询通过 WHERE rn = 1 筛选出每个分组中 number 最大的那一行,因为在按 number 降序排列后,行号为 1 的就是 number 最大的那一行。

请将 your_table 替换为你的实际表名。

示例数据:

id number name
1 1 第1个人
1 2 第2个人
2 1 第3个人
2 2 第4个人
3 1 第5个人
3 2 第6个人
3 3 第7个人

查询结果:

id number name
1 2 第2个人
2 2 第4个人
3 3 第7个人

这段 SQL 查询能正确地返回每个 id 分组中 number 最大的那一行数据。

标签:dm,NUMBER,number,分组,oracle,查询,id,ROW
From: https://www.cnblogs.com/kakarotto-chen/p/18430620

相关文章

  • oracle数据库安装和配置
    Oracle数据库的安装和配置分为以下几个主要步骤,具体取决于操作系统版本、硬件要求以及使用的Oracle版本。下面将以较常见的安装方式进行概述。一、安装前准备1.检查硬件和软件要求内存:至少2GB。磁盘空间:建议至少10GB用于Oracle软件和数据库文件。操作系统:Window......
  • Oracle RMAN无法删除部分归档日志问题
    前言当Oracle归档日志满了后,将无法正常登入oracle,需要删除一部分归档日志才能正常登入ORACLE。最近在工作中遇到一个问题,Oracle11g数据库使用RMAN没办法删除旧的归档,导致磁盘使用率很高。oracle@hfzsd:[/u01/app/oracle/oradata/orcl/]ls-ltr|moretotal3059881082-r......
  • Oracle 正确删除归档日志的方法
    1、进入rman[root@db1~]#su-oracle[oracle@db1~]$/u01/app/oracle/product/10.2.0/db/bin/rman一般都设置了环境变量,所以可以直接执行rman命令,如下:[oracle@db1~]$rmanRecoveryManager:Release11.2.0.1.0-ProductiononFriSep2516:18:032020Copyright......
  • 用Podman搭建LAMP开发环境的容器(六) -- 使用普通用户
    上接:用Podman搭建LAMP开发环境的容器(五)–端口转发现在这个容器还是直接用root用户跑的。虽然说如果只是开发环境的话,而且是一个虚拟机容器,直接用root用户工作应该也问题不大。不过我还是想在一般情况下用普通用户。首先我要改containerfile文件的脚本,来创建一个普通......
  • 基于旗芯微FC4150系列的DMA详解
    1.概述DMA的中文名称是直接内存访问,它不需要CPU的参与,实现数据传输的技术(但是也会占用总线带宽,所以有时候使用DMA虽然会降低CPU负载,但提高访问数据速度并不高)。1.1旗芯微FC4150系列芯片DMA特征·所有数据的传输都是从源地址写入到目标地址,源地址和目标地址以及传输大小都是......
  • kubeadm 更换证书
    在Kubernetes集群中,由kubeadm生成的证书默认有效期为1年。如果证书到期,需要进行续订或者更换。以下是更换kubeadmin证书的步骤:检查证书到期时间:使用以下命令来检查证书何时过期:shellkubeadmcertscheck-expiration这将显示所有证书的到期时间和剩余时间。......
  • 考前须知:Oracle OCP考试流程和准备
    考前须知:OracleOCP考试流程和准备OCP(OracleCertifiedProfessional),是甲骨文数据库认证中很常见的一个,但却有着很重要的作用,对于从事大型数据库相关行业的人来说,几乎是必考的一种,OCP证书含金量较高,考试也有一定的难度,所以考前要对OCP考试有一些了解。​一.OCP认证考试流程:......
  • 统信UOS安装Oracle 11g的客户端
    统信UOS安装Oracle11g的客户端一个积分的下载地址https://download.csdn.net/download/u011189649/89791511解压客户端压缩文件到/db/#首先执行xhost+xhost+#上传linux.x64_11gR2_client.zip文件至/db/目录;#如果上传不了就在局域网搭个http服务,然后用wget下载#wget......
  • 数据挖掘与机器学习(DM&ML)(PART2)
    二.DataMiningProcessModel&DataPreprocessing1.ProcessModel2.Data3.Problemsofdataquality4.Dataunderstanding(Summarystatistics;Visualization)5.Datapreparation(Datacleaning;Datatransformation)P.S.CRossIndustryStandardProcess-Dat......
  • Oracle 19c OCP 认证考试 082 题库(第24题)- 2024年修正版
    【优技教育】Oracle19cOCP082题库(Q24题)-2024年修正版考试科目:1Z0-082考试题量:90通过分数:60%考试时间:150min本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com/index.php?s=/home/article/detail/id/3410.html第......