MySQL如何只取根据某列连续重复行的第一条记录

前言

MySQL如何只取根据某列连续重复行的第一条记录,条件:某列、连续、验重

建表准备

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test`  (`id` bigint NOT NULL,`time` datetime NULL DEFAULT NULL,`price` int NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

数据准备

在这里插入图片描述

方案

方案一:验重列组内分配排名&取排名第一个

SET @prev_value = NULL;
SET @rank = 0;SELECTb.id,b.time,b.price 
FROM(SELECTa.id,a.time,a.price,@rank := IF ( @prev_value = a.price, @rank + 1, @rank := 0 ) AS order_num,@prev_value := a.price FROM( SELECT * FROM test ORDER BY id ) a ) b 
WHEREb.order_num = 0;
  • @prev_value 用于存储验重列前一行的值。
  • @rank 用于给每个连续重复块内的每行分配一个排名。
    在这里插入图片描述
    ps: 此处 SELECT * FROM test ORDER BY id 根据id排序,可根据实际情况调整也可删除,加上最后的 WHERE b.order_num = 0 后就是取第一条数据;

方案二:验重列分组序号&组内取第一个

SET @prev_value = NULL;
SET @group_id = 0;SELECTa.id,a.time,a.price 
FROMtest aINNER JOIN ( SELECT MIN( b.id ) AS min_id FROM(SELECTd.id,d.time,d.price,@group_id := IF( @prev_value = d.price, @group_id, @group_id + 1 ) AS group_id,@prev_value := d.price FROM( SELECT * FROM test ORDER BY id ) d) AS b GROUP BYb.group_id ) AS c ON a.id = c.min_id;
  • @prev_value 用于存储验重列前一行的值。
  • @group_id 用于给每个连续重复块分配一个组号。
    在这里插入图片描述
    ps: 此处 SELECT * FROM test ORDER BY id 根据id排序,可根据实际情况调整也可删除,每组数据分配一个组号,然后再根据组号分组取第一条数据;
    在这里插入图片描述

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

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

相关文章

Fetch处理大模型流式数据请求与解析

为什么有的大模型可以一次返回多个 data? Server-Sent Events (SSE):允许服务器连续发送多个 data: 行,每个代表一个独立的数据块。 流式响应:大模型服务通常以流式响应方式返回数据,提高响应速度。 批量处理&#x…

【数据结构】链表(1):单向链表和单向循环链表

链表 链表是一种经典的数据结构,它通过节点的指针将数据元素有序地链接在一起,在链表中,每个节点存储数据以及指向其他节点的指针(或引用)。链表具有动态性和灵活性的特点,适用于频繁插入、删除操作的场景…

离散数学考前一天

判断强连通,单向连通,弱连通: 求可达性矩阵P,P里面全是1,就是强连通 否则看P与P的转置矩阵,如果除了主对角线是0,其他全是1,就是单向连通 否则看A1=A与A的转置矩阵&am…

【服务器项目部署】⭐️将本地项目部署到服务器!

目录 🍸前言 🍻一、服务器选择 🍹 二、服务器环境部署 2.1 java 环境部署 2.2 mysql 环境部署 🍸三、项目部署 3.1 静态页面调整 3.2 服务器端口开放 3.3 项目部署 ​ 🍹四、测试 🍸前言 小伙伴们大家好…

Nginx的性能分析与调优简介

Nginx的性能分析与调优简介 一、Nginx的用途二、Nginx负载均衡策略介绍与调优三、其他调优方式简介四、Nginx的性能监控 一、Nginx的用途 ‌Nginx是一种高性能的HTTP和反向代理服务器,最初作为HTTP服务器开发,主要用于服务静态内容如HTML文件、图像、视…

HTML——31.定义媒介资源

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>定义媒介资源</title></head><body><!--source标签用来为<video>视频和<audio>音频 &#xff0c;定义媒介资源--><!--src属性&…

宝塔-firefox(Docker应用)-构建自己的Web浏览器

安装基础软件 宝塔中安装firefox(Docker应用) 。宝塔中需要先安装docker及docker-composefirefox配置安装 点击firefox应用&#xff0c;选择【安装配置】点击右边绿色按钮&#xff0c;进行安装&#xff0c;这一步等待docker-compose根据你的配置初始化docker应用 等待安装 …

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(一)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 三、传统微调范式&#xff08;Traditional Fine-Tuning Paradigm&#xff09; 在这个范式中&#xff0c;首先在大量未标记的文本数据上预…

【泰克生物】从酵母细胞表面展示到抗体筛选:实现精准药物发现

在现代药物发现领域&#xff0c;精准筛选和优化抗体已成为一种必不可少的技术手段。传统的抗体筛选方法依赖于动物免疫或体外筛选&#xff0c;这些方法往往成本高且周期长。近年来&#xff0c;酵母细胞表面展示技术&#xff08;Yeast Surface Display, YSD&#xff09;成为一种…

基于YOLOV5+Flask安全帽RTSP视频流实时目标检测

1、背景 在现代工业和建筑行业中&#xff0c;安全始终是首要考虑的因素之一。特别是在施工现场&#xff0c;工人佩戴安全帽是确保人身安全的基本要求。然而&#xff0c;人工监督难免会有疏漏&#xff0c;尤其是在大型工地或复杂环境中&#xff0c;确保每个人都佩戴安全帽变得非…

Unity开发微信小游戏踩坑总结

前言 不记录真记不住&#xff0c;这个帖子以后不定时更新。 问题1&#xff1a;图片模糊 问题描述&#xff1a; 在Unity里什么事没有&#xff0c;进入到微信开发者工具里就已经模糊了&#xff0c;人物动画是一团马赛克&#xff0c;图片看着倒是没事。 问题原因&#xff1a;…

【AI日记】24.12.30 kaggle 比赛 2-18

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加&#xff1a;kaggle 比赛 Regression with an Insurance Dataset时间&#xff1a;8 小时 读书 1 书名&#xff1a;教育的本质时间&#xff1a;0.5 小时评估&#xff1a;快速读完&#xff0c;收获不…

VUE echarts 教程二 折线堆叠图

VUE echarts 教程一 折线图 import * as echarts from echarts;var chartDom document.getElementById(main); var myChart echarts.init(chartDom); var option {title: {text: Stacked Line},tooltip: {trigger: axis},legend: {data: [Email, Union Ads, Video Ads, Dir…

微信小程序中遇到过的问题

记录微信小程序中遇到的问题&#xff08;持续更新ing&#xff09; 问题描述&#xff1a;1. WXML中无法直接调用JavaScript方法。2. css中无法直接引用背景图片。3. 关于右上角胶囊按钮。4. 数据绑定问题。5. 事件处理问题。6. 关于movable-view组件的问题7. 关于设置宽度后设置…

RabbitMQ实现生产者消费者

一.启动MQ 注意管理员身份进入cmd才行,我这里是在本地安装的MQ,推荐使用虚拟机安装 二.思路 官方解释RabbitMQ结构: 自我理解RabbitMQ结构: 其实RabbitMQ的服务器就像邮局一样,我们的生产者和消费者对于这个服务器来说都是消费者,因为服务器都可以向两者发送消息 环境准备 …

课设CLion连接Ubuntu14makeQt项目出错解决汇总

在这之前需要注意以下几点&#xff1a; 1、需要 确保CLion能连接Ubuntu14 2、cmakelist.txt文件配置 3、知道部署路径&#xff1a; 问题一&#xff1a;/usr/bin/ld: cannot open output file GreedySnake: Is a directory 否则就会出现make以后应该生成一个可执行文件&…

JavaWeb开发(一)IDEA工具下载、配置、项目创建、Tomcat配置

1. IDEA工具下载、配置、项目创建、Tomcat配置 1.1. IDEA官方地址下载 官方地址下载 1.1.1. 自动补全 Settings–>Editor–>General–>Code Completion 1.1.2. 自动导包 Settings–>Editor–>General–>Auto lmport 1.1.3. 配置JDK 1.2. 创建项目 1…

RK3568 bsp 9 - USB调试记录

文章目录 1、环境介绍2、RK3568 USB资源介绍3、配置目标4、dts配置4.1、USB3.0 OTG4.2、USB2.0 Host 2 和 USB2.0 Host 3 5、kernel配置5.1、USB PHY CONFIG5.2、USB Host CONFIG5.3、USB OTG CONFIG5.4、USB外设CONFIG5.4.1、Mass Storage Class CONFIG5.4.2、USB HID CONFIG …

一文讲清楚webpack和vite原理

一、前言 每次用vite创建项目秒建好&#xff0c;用vue-cli创建了一个项目&#xff0c;却有点久&#xff0c;那为什么用 vite 比 webpack 要快呢&#xff0c;这篇文章带你梳理清楚它们的原理及不同之处&#xff01;文章有一点长&#xff0c;看完绝对有收获&#xff01; 二、web…

Vue3源码解读--方向篇

vue3文档地址、GitHub项目地址&#xff1a; https://cn.vuejs.org/v2/api/ https://github1s.com/vuejs/vue-next/tree/3.2 二、如何本地调试vue3源码 很多时候我们都是在本地调试vue3的源码&#xff0c;然后沿着调用链&#xff0c;一步一步的去梳理vue3的源码。 把vue3项目拉到…