mysql去重取最大值,逻辑类似oracle的over(partition by)函数

    像下表一样的数据,有重复的合同号,但是我只想保留同一合同号中回款金额最大的那一行,也就是图中红框里的数据。


oracle方法:

    在oracle中,我们可以简单地用over(partition by)函数处理(代码示例如下),解释一下就是利用partition by函数按照合同号分区,在每个分区内再利用order by根据回款金额排序,where num=1的意思就是取每个分区中排序第一的那一行。

select 
row_number()over(partition by 合同号 order by 回款金额 desc) as num
from  test  where num=1

mysql方法:

    但是在mysql中并没有这样的函数,我们需要重新写逻辑(代码如下),老规矩解释一下:第二个select函数是关键所在,功能就是,当a.`合同号` = b.`合同号`时,我们取出最大的回款金额,当a.`回款金额`等于这个最大的回款金额时,我们认为这一行符合条件并取出,因此a中的每个合同号我们都要执行一次第二个select函数,来判断当前合同号的这一行是否是最大回款金额的这一行。

SELECT  a.`合同号`,  a.姓名,  a.`回款金额`
FROM test a    WHERE a.`回款金额` = 
(SELECT  MAX(b.`回款金额`)    FROM test b     WHERE a.`合同号` = b.`合同号`);

   运行结果:

    


去重取最小值:

     如果是去重取最小值,那么代码如下,简单地说就是oracle【改升序为降序】,mysql【改最大值为最小值】。

#oracle
select 
row_number()over(partition by 回款金额 order by 回款金额 ASC) as num
from  test
#mysql
SELECT   a.`合同号`,  a.姓名,   a.`回款金额`
FROM  test a    WHERE a.`回款金额` = 
(SELECT   MIN(b.`回款金额`)   FROM test b     WHERE a.`合同号` = b.`合同号`);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql一图秒懂秒清晰 - join连接 ,left join左连接 ,right join右连接 ,inner join内连接

前言:zuo表和you表短短五行涵盖了数据中所有可能遇见的情况: 1.左表有重复值(合同号1134); 2.右表有重复值(合同号1133); 3.左表存在右表没有的合同号(合同号1188&#x…

LeetCode 910. 最小差值 II(贪心)

1. 题目 给定一个整数数组 A,对于每个整数 A[i],我们可以选择 x -K 或是 x K,并将 x 加到 A[i] 中。 在此过程之后,我们得到一些数组 B。 返回 B 的最大值和 B 的最小值之间可能存在的最小差值。 示例 1: 输入&a…

行业分析-实战价值方法

都是工作中总结的方法,可能理论基础不是那么高大上,但是非常有实战价值。 1.行业研究维度 2.行业景气度 3.行业间关系(敏感性计算) 4.行业成长性

mysql 8.0.11-Windows (x86, 64-bit)下载地址与安装教程

1.下载安装包 Windows (x86, 64-bit), ZIP Archive官网下载安装包 点击链接,进入如下页面---点击Download下载---解压到目录(例如E:\program\mysql-8.0.11-winx64)2.添加配置文件my.ini 在目录E:\program\mysql-8.0.11-winx64下: …

Excel - 添加趋势线,显示趋势线公式 - 进行行业投融资曲线拟合

1.准备数据 本次是以人工智能行业为例,数据范围是2012年4月到2017年11月的,这是去年的时候采集的,这次就直接拿来用了,不影响曲线拟合的操作过程。但是想使用最新的数据的话,你也可以像我一样用火车头采集器采集最新的…

windows电脑快捷键大全 - 高手总是很酷的

1. WindowsL键,直接锁屏,这样就不用担心电脑的资料外泄了 2. 一般人会先找到“我的电脑”,然后点击打开,而高手总是很酷的, WindowsE键,直接打开电脑的资源管理器 3. 直接按下 WindowsD键&#xff0c…

Linux常用工具小结:(2) Mysql的rpm安装和编译安装

Mysql的rpm安装 1, 下载。 这里下载http://dev.mysql.com/downloads/mirror.php?id402502。 2, 安装。 下载到本地解压: tar -xvf MySQL-5.5.12-1.rhel5.x86_64.tar 安装以下rpm rpm -ivh MySQL-devel-5.5.12-1.rhel5.x86_64.rpm rpm -ivh M…

Power BI 的 最佳搭档 Excel(基础数据分析)

Powerbi和Excel l Power BI 和 Excel 本节将向你介绍将 Excel 工作薄导入 Power BI 是多么简单,并演示 Power BI 和 Excel 如何展现最佳搭档气质。 以下主题将指导你使用简单的表格将 Excel 工作薄上传到 Power BI。 然后你将了解如何上传使用 Excel 更高级的 B…

降维方法 -简直太全- 附Python代码(Random Forest、Factor Analysis、corr、PCA、ICA、IOSMA

为什么要降维? 建模初期,我们往往只有几个指标,这个时候不太涉及到降维,但是一个月后你就发现,模型的指标越来越多,从原有的五六个指标一步一步变成 100 个指标。100 个很多吗?不多&#xff01…

CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...

上次发布的:CYQ.DBImport V1.0的相关介绍:CYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 本次发布的V2.0 版本,准备突击海外,下面为相关的介绍。 一:新版本2.0的新增功能介绍 1:修正GUID的脚本错误2…

Power BI 如何获取数据做可视化

获 取 数 据 l 获取数据 Power BI Desktop 可连接到种类广泛的多种数据源,包括本地数据库、Excel 工作表和云服务等。 它可帮助清理数据和设置数据格式,以使数据更为有用,包括拆分和重命名列、更改数据类型和处理日期。还可创建列之间的关…

Power BI 将商业智能数据转换为数据理解

l 研究数据 在本部分中你要了解各种知识,并且积极的互动和进行 Power BI 共享在这一部分至关重要。 Power BI 服务简介 Power BI 服务是 Power BI Desktop 的自然扩展,其功能包括上传报表、创建仪表板,以及使用自然语言对数据进行提问。该服…

LeetCode 554. 砖墙(map计数)

1. 题目 你的面前有一堵方形的、由多行砖块组成的砖墙。 这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块的垂线。 砖墙由行的列表表示。 每一行都是一个代表从左至右每块砖的宽度的整数列表。 如果你画的线只是从砖块的边缘经过,就不算穿…

Power BI 数据可视化(核心),让报表更生动

可 视 化 l 可视化 Power BI 中的视觉对象简介 实现数据可视化是 Power BI 的核心部分(像我们在本课程前面所定义那样,它是基本的构建基块),而创建视觉对象是发现并共享你的见解的最简方法。 Power BI 默认提供众多可视化效果…

Power BI数据建模

l 建模 通常情况下,你将会连接到多个数据源以创建报表,且需所有数据协同工作。 建模就是实现这一点的办法。 若要创建不同数据源之间的逻辑连接,需创建一种关系。 数据源之间的关系使 Power BI 能够了解表与表之间的关系,以便能…

Power BI 数据可视化软件实现共享报表

l 在 Power BI 中与同事共享和协作 在此模块中,涵盖各种用于与同事共享和协作处理仪表板、报表和数据的方法。例如,你可以: 从 Power BI Desktop 向 Power BI 服务发布报表使用 Power BI Mobile 应用查看共享报表和仪表板并与其交互创建打包…

非线性规划 - 用非线性规划解决问题 - (Lingo建模)

在经营管理中,为取得更高的利润,不仅需要提高经营收入,也要考虑如何在现有的人力、物力和财力条件下合理安排,在满足要求的前提下,达到最低的成本。对于静态的最优化问题(即所有数据不会瞬息万变&#xff0…

PHP学习之路(二)让我们开始环境搭建(Windows篇)

在上篇中,我详述了在Windows下配置Zend开发工具的详细过程,但是没有一个开发环境,你再牛B的工具自然也跑不起来,比如没有了.NET Framework,你跑个Visual Studio试试,所以搭建开发环境也是学习程序开发一个必…

线性规划 - 用单纯形法解决整数规划问题 - (Matlab、Lingo建模)

现实生活中,比如机器的台数,参与工作的人数,可调动的车辆数,这些数据都是整数。因此对于变量中包含整数、或者完全是整数的规划问题,我们称之为整数规划。在解决整数规划常用的算法便是单纯形法。 课题名称&#xff1a…

Oracle 多表 连接 顺序 与 性能关系 测试

一. 创建表并insert 数据 create table ta (id number,name varchar2(10)); create table tb(id number,job varchar2(10)); begin for i in 1..1000000 loop begin insert into ta values(i,dave); commit; end; end loop; end; begin for i in 1..1000000 loop begin if i<…