Mysql 的ROW_NUMBER() 和分区函数的使用 PARTITION BY的使用

Mysql 的ROW_NUMBER() 和分区函数的使用 PARTITION BY的使用

  • 描述:
    遇到了一个需求,需要查询用户id和计划id,但是人员id的是重复,我想把人员id去重,支取一个。
  • 自然而然的就想到了
SELECT DISTINCT prj_plan.last_month_user,prj_plan.id FROM prj_funds_plan prj_plan 

在这里插入图片描述
但是这玩意不生效。那我就使用了ROW_NUMBER() 和 PARTITION BY 分区函数。
ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编号

partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,分区函数一般与排名函数一起使用。

后来使用了,编号函数和分区 PARTITION BY prj_plan.last_month_user ORDER BY prj_plan.id ,按照userId分区,按照id进行排序。然后再取row_num = 1。

 SELECT prj_plan.last_month_user,prj_plan.id,ROW_NUMBER() OVER (PARTITION BY prj_plan.last_month_user ORDER BY prj_plan.id) as row_numFROM prj_funds_plan prj_plan

在这里插入图片描述
由此一看我是不是就达到目的了

SELECT last_month_user, id
FROM (SELECT prj_plan.last_month_user,prj_plan.id,ROW_NUMBER() OVER (PARTITION BY prj_plan.last_month_user ORDER BY prj_plan.id) as row_numFROM prj_funds_plan prj_plan
) AS ranked
WHERE row_num = 1;

在这里插入图片描述

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

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

相关文章

分布式事务--初识Seata和TC部署

1.Seata介绍 Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。 官网地址:Seata | Seata,其中的文档、播客中提供了大量的使用说明…

Python读写arxml文件

文章目录 前言一、XML简介二、XML文件结构三、Python读取xml文件安装ElementTree库读取xml文件四、Python写入xml文件前言 本文主要通过介绍arxml文件,为后续python脚本开发奠定基础。 arxml是AUTOSAR XML的简称,是一个通用的配置/数据库文件,实质是一个xml文件。 ①更规范…

Mysql查询条件为大于时,不走索引失效场景

如下 where a>1 and b2 是不走索引。 因为a>1 , (这里说的是,a是走了索引,但是b没有走,为什么了?因为b只有在a相同时,b才有序,也就是说这个联合索引只用到了一半)的数据是无序的(1 4 1 2)&#xff0…

WGAN 优势小结

我在上一篇博文为什么 GAN 不好训练中,分析了原始 GAN 难以训练的原因,本篇博文将分析下 WGAN 的优势。 1. Wasserstein 距离 W 是指 Wasserstein,Wasserstein 距离又叫Earth-Mover(EM)距离。Wasserstein距离相比KL散…

ubuntu18.04 安装yolov5环境及推理环境

文章目录 1、安装anaconda31.2、环境变量配置1.3、添加/更换 conda 清华源 2、安装pytorch1.63、CUDA安装4、安装cuDNN5、安装tensorRT6、安装opencv4.67、tensorRT部署yolov5模型推理 1、安装anaconda3 官方网网址 https://www.anaconda.com/download#downloads去到下载的文…

心理测试网站源码,知己心理React心理健康测试

源码介绍 React心理健康测试网站源码,帮助需要的人更好地了解自已的心理健康状态和人格特征。 React可以在Vite中启用HMR,并且包含了几人EsLint规则。只需要使用react antd-mobile即可 轻松部署完成。

千梦网创:逮住一闪而过的机会疯狂摩擦

我这个人平时想的就多,睡觉也在想事情,有时候睡觉里想的事情往往都是很纯粹的、很绝妙的,但是经常性一醒过来就忘了,再去回忆怎么也想不起来了。 灵感只在特定的环境下产生,这类环境是不可再生和模拟的。 机会只因特…

【C++11特性篇】盘点C++11中三种简化声明的方式【auto】【decltype】【nullptr】(3)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.auto&范围for二.decltyp…

用Python快速从深层嵌套 JSON 中找到特定的 Value

有时候,我们拿到一个JSON数据的时候,会难以看出其逻辑层次结构。 这时候就需要我们进行代码解析了。 代码: import jsondef find_json_value(data_json, value, path""):if isinstance(data_json, dict):for k, v in data_json.…

Web 应用程序性能测试核心步骤

通常大家做web 应用程序的时候会有哪些操作呢?今天就来看看常见的web 应用程序的常见操作。 Web 应用程序性能测试核心步骤 1:识别测试环境。确定物理测试环境和生产环境,以及测试团队可用的工具和资源。物理环境包括硬件、软件和网络配置。…

c语言单向链表

看如下代码,这是一个完整的可运行的c源文件,要注意的点: c语言程序运行不一定需要头文件NULL其实是 (void*)0,把指针赋值成(void*)0,就是防止程序员不想该指针被引用的时候被引用,引用地址为0的值程序会引起系统中断&…

PyQt6 QSpacerItem弹簧控件

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

00后卷王的自述,我难道真的很卷?

前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从12k涨到了18k,对于工作都还没两年的我来说,还是比较满意的,毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王,感觉自己年轻&#xff…

自动化访客互动:提升网站效益与用户体验的关键优势

在激烈的市场竞争环境中,想抢占市场,获得收益并不容易。每一个订单的完成都要经过一定的销售周期,所以企业可以根据销售周期每个阶段的特点进行优化,留住客户。其中,企业可以在与客户在线互动的过程中,让互…

ShardingSphere-JDBC 和 ShardingSphere-Proxy,你选择哪一个

参考文章 总结: 只使用Java,ShardingSphere-JDBC更好有异构语言的话,ShardingSphere-Proxy 更好混用也挺香

小红书商品详情API:电商助力

一、引言 随着互联网的普及和电商行业的快速发展,消费者对于商品信息的获取方式也在不断变化。小红书作为一款以内容分享为主的社交电商平台,吸引了大量用户。为了满足用户对商品信息的快速获取需求,小红书提供了商品详情API接口。本文将探讨…

Web测试、APP测试常用技巧(错过你一定会后悔)

1. web元素定位七种方式 优先使用的6种 find_element_by_id (返回一个元素)find_element(s)_by_class_name (根据类名获取元素列表)find_element(s)_by_name (根据标签的name属性值返回包含标签对象元素的列表)find_element(s)_by_link_text (根据连接文本获取元素列表)find_…

linux环境安装可操作图库语言Gremlin的图框架HugeGraph

原创/朱季谦 若你还没接触过图数据库,可能看到这个概念时,会比较蒙蔽。 图是什么?图数据库又是什么? 首先,在数据结构中,图是一种由顶点(vertex)集合及顶点间关系集合组成的一种非…

常见数据结构

数据结构概述 数据结构是计算机底层存储、组织数据的方式,是指数据相互之间是以什么方式排列在一起的。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 栈 栈数据结构的执行特点:后进先出,先进后出。 栈模型…

探索灵活性与可维护性的利器:策略(Strategy)模式详解

目录 ​编辑 1. 策略模式概述: 2. 主要角色: 3. 实例场景: 4. 具体实现步骤: 步骤一:定义策略接口 5. 使用策略模式的客户端代码: 总结: 我的其他博客 1. 策略模式概述: 策…