【SQL】做项目时用到的语句整理(去重/多表关联)

1. 对日期去重(groupby)

需要:新建一张表,对原来表中的某个列(href)进行去重,并按照最新的日期进行排版

适用:如果有一张表,我们重复往里面存入数据,有一些除了日期以外,其他字段一样的内容写进去,这时候,我们需要按照最新日期进行数据去重。

主要的语句:group by

CREATE TABLE Table_new
SELECT href,ID,`status`,max(update_time) AS `update_time` 
#如果是功能性的词,要用引号框住
FROM Table_1
GROUP BY href;

原表:

数据重复,想要迭代最新的数据:在这里插入图片描述
结果:数据总算清干净了在这里插入图片描述

2.两表关联,附表补充主表(Left join):

2.1 需要:

有两个表,其中两个表的数据大量交叉重复,如果我们想要两个表的数据合并,用附表补充主表,构建一个新的表,对两个表的内容做去重,这时候可以用left join 的方法对两个表关联并做去重。而附表的一些字段需要做筛选,且需要其他字段一对一能匹配得上;

例子:在两个表Table_1和Table_2之间,选取Table_1的整个表,且保证选取字段列net是能一 一对应得上的,同时附表Table_2的状态status为1 的部分;

这种情况适用于,主表Table_1可能没有状态值的这一项,需要关联附表Table_2,筛选出状态值为1 的选项,最后为Table_1做补充。

方法:使用左连接LEFT JOIN ,也就是左边表的所有部分;从附表b的数据,用来补充主表a的数据,这里是找某一项是同类项。

CREATE TABLE Table_new
select a.* 
from table_1 a #把这个表命名为a
LEFT JOIN (select * from table_2 where status=1) b  
on a.net=b.net

(实现逻辑如下,蓝色部分为Table_new)在这里插入图片描述

结果:如果在右表中找到了匹配的记录,结果集中会包含左表的记录加上右表匹配的记录

2.2 需要:
如果想要两个表的数据合并,需要附表补充主表,而同时附表需要一些限定条件,这时在上面的基础上加上where的限制条件;

举个例子:

主表Table_1完成的是,已经完成网址项的表,但是因为有时候我们在某一项是空的时候,运行的过程会空的网址的项也运行完了,以此需要筛选出,这部分被误标记status=1且网址为空的表出来。

而这部分空网址在附表Table_2里。现在需要将Table_1的已经完成的部分,加上Table_2中status=1且net=null的数据,组成Table_new。

逻辑图如下:在这里插入图片描述

方法:使用左连接LEFT JOIN ,也就是左边表Table_1的所有部分;而附表有两个限制条件,一个是状态值,一个是筛选 的数据,用来补充主表a的数据,而增加对b的限制。

我们先用其中一个筛选条件——状态值

CREATE TABLE Table_new
select a.* #
from table_1 a #选取第一个表 并命名为a
LEFT JOIN (select * from table_2 where status=1) b 
on a.net=b.net
where b.net is null

#大小写是为了看得顺眼,大家写的时候建议都改成大写呀

两表关联建新表,可以对两个表的数据整合出来,如果想要去重,可以在新表的设计表弄key, 例如上面的例子,给net字段弄个key,作为表的唯一项来去重。

2.3. 倒序筛选

select table_1.* ,table_2. url from table_1
left join table_2  on  table_1.ID=table_2.ID
order by create_time desc limit 20;

以上的做法是, 选取两个表之间,其中某一项的相同的数据。有时候有些表以ID命名关联,但是有些表的一些列在另一个表里,因此需要关联两个表。例如下面的例子是ID 相同,表1的所有部分,以日期倒叙。

3. 选取某字段不重复的数据:

选取表里某一个字段的不重复数据

主要方法:distinct

select distinct Problem from table_1 
where update_time >='2021-01-01 10:00:00'

PS:以上写法为了好看,不区分大小写,大家在测试的时候记得自行修改呀~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

符号同步、定时同步和载波同步

符号同步、定时同步和载波同步是通信系统中重要的同步技术,它们各自承担着不同的功能和作用。以下是对这三种同步技术的详细解释: 符号同步 定义: 符号同步,也称为定时恢复或时钟恢复,是指在数字通信系统中&#xff…

Java字符串(String、字符串拼接、原理)

文章目录 一、String字符串1.1创建方式【直接赋值、new一个对象】1.1.1 使用字符串字面值直接赋值:(1)字符串字面量创建String对象的转换过程(2)一些方法(3)说明 1.1.2 使用new关键字创建字符串…

MySQL:TABLE_SCHEMA及其应用

MySQL TABLE_SCHEMA及其应用 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/ar…

285个地级市出口产品质量及技术复杂度(2011-2021年)

出口产品质量与技术复杂度:衡量国家竞争力的关键指标 出口产品质量是衡量国内企业生产的产品在国际市场上竞争力的重要标准。它不仅要求产品符合国际标准和目标市场的法律法规,而且需要保证产品质量的稳定性和可靠性。而出口技术复杂度则进一步体现了一…

龙迅LT8641UXE HDMI四进一出切换开关,支持标准HDMI 2.0内置MCU

龙迅LT8641UXE描述: Lontium LT8641UX HDMI2.0开关具有符合HDMI2.0/1.4规范的4:1开关,最大6Gbps高速数据速率,自适应均衡RX输入和预先强调的TX输出支持长电缆应用,没有XTAL板上节省BOM成本。LT8641UX HDMI2.0开关自动…

C++之goto陈述

关键字 goto用于控制程式执行的顺序&#xff0c;使程式直接跳到指定标签(lable) 的地方继续执行。 形式如下 标签可以是任意的识别字&#xff0c;后面接一个冒号。 举例如下 #include <iostream>int main() {goto label_one;label_one: {std::cout << "Lab…

数字人直播时代来了!数字人直播系统搭建,AI虚拟数字人直播系统源码部署

数字人直播系统这是一种利用人工智能技术&#xff0c;实现自动化生成真实人物直播销售商品的综合性解决方案。 一、目前数字人直播支持的平台&#xff1a; 抖音、快手、视频号、小红书、淘宝、支付宝生活号、TikTok、阿里国际站等。 技术栈 数据库&#xff1a;mysql5.7 技术搭…

搜维尔科技:OptiTrack在NAB2024展示了一系列业界领先的媒体技术

广泛的显示和动作捕捉跟踪技术组合涵盖无与伦比的室内和室外 LED 解决方案、前沿技术演示以及最新的软件和硬件产品 可视化技术领域的全球领导者 Planar及其附属公司 3D 跟踪系统的全球领导者OptiTrack宣布&#xff0c;两家公司将在 2024 年全国广播协会 (NAB) 展会上展示其最全…

新火种AI|OpenAI的CEO又有新动作?这次他成立了AI健康公司

作者&#xff1a;一号 编辑&#xff1a;美美 AI技术即将改变医疗健康市场。 就在前两天&#xff0c;人工智能和医疗健康领域迎来了一个重要时刻。OpenAI的CEO萨姆阿尔特曼&#xff08;Sam Altman&#xff09;与Thrive Global的CEO阿里安娜赫芬顿&#xff08;Arianna Huffing…

Linux网络命令:网络工具socat详解

目录 一、概述 二、基本用法 1、基本语法 2、常用选项 3、获取帮助 三、用法示例 1. 监听 TCP 端口并回显接收到的数据 2. 通过 TCP 端口转发数据到 UNIX 套接字 3. 将文件内容发送到 TCP 端口&#xff1a; 4. 使用伪终端进行串行通信 5、启动一个TCP服务器 6、建…

go-redis源码解析:连接池原理

1. 执行命令的入口方法 redis也是通过hook执行命令&#xff0c;initHooks时&#xff0c;会将redis的hook放在第一个 通过hook调用到process方法&#xff0c;process方法内部再调用_process 2. 线程池初始化 redis在新建单客户端、sentinel客户端、cluster客户端等&#xff0c…

Apache Flink核心特性应用场景

Flink的定义 Apache Flink是一个分布式处理引擎&#xff0c;用于处理 无边界数据流&#xff0c; 有边界数据流上金秀贤有状态的计算。Flink能在所有常见的集群环境中运行&#xff0c;并能以内存速度和任意规模进行计算如下Flink官网的一张图 Flink 与Spark的区别 Flink 中处…

《大语言模型的临床和外科应用:系统综述》

这篇题为《大语言模型的临床和外科应用&#xff1a;系统综述》的文章对大语言模型&#xff08;LLM&#xff09;目前在临床和外科环境中的应用情况进行了全面评估。 大语言模型&#xff08;LLM&#xff09;是一种先进的人工智能系统&#xff0c;可以理解和生成类似人类的文本。…

理解 LibTorch 的工作流程

深入理解 LibTorch 的工作流程 摘要 本文详细介绍了 LibTorch 的工作流程&#xff0c;包括模型定义、数据准备、训练、评估和推理。通过具体的伪代码示例&#xff0c;帮助读者深入理解 LibTorch 的基本原理和使用方法。 关键字 LibTorch, 深度学习, 动态计算图, 自动微分, …

Sharding-JDBC分库分表之SpringBoot主从配置

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 前言 在开发中&#xff0c;如果对数据库的读和写都在一个数据服务器中操作&#xff0c;面对日益增加的访问量&#x…

HI3559AV100四路IMX334非融合拼接8K视频记录

下班无事&#xff0c;写篇博客记录海思hi3559av100四路4K视频采集拼接输出8K视频Demo 一、准备工作&#xff1a; 软件&#xff1a;Win11系统、VMware虚拟机Ubuntu14、Hitool、Xshell等 硬件&#xff1a;HI3559AV100开发板4路imx334摄像头、串口线、电源等 附硬件图&#xff1…

阿里发布大模型发布图结构长文本处理智能体,超越GPT-4-128k

随着大语言模型的发展&#xff0c;处理长文本的能力成为了一个重要挑战。虽然有许多方法试图解决这个问题&#xff0c;但都存在不同程度的局限性。最近&#xff0c;阿里巴巴的研究团队提出了一个名为GraphReader的新方法&#xff0c;通过将长文本组织成图结构&#xff0c;并利用…

《RWKV》论文笔记

原文出处 [2305.13048] RWKV: Reinventing RNNs for the Transformer Era (arxiv.org) 原文笔记 What RWKV(RawKuv):Reinventing RNNs for the Transformer Era 本文贡献如下&#xff1a; 提出了 RWKV 网络架构&#xff0c;结合了RNNS 和Transformer 的优点&#xff0c;同…

【GC 垃圾回收算法和回收器】

作者&#xff1a;ofLJli 链接&#xff1a;https://juejin.cn/post/7003213289425633287?searchId20240709085629749958B21D886D4E67D4 来源&#xff1a;稀土掘金 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 概述 在JVM中主要的结构为&…

工作助手VB开发笔记(1)

1.思路 1.1 样式 样式为常驻前台的一个小窗口&#xff0c;小窗口上有三到四个按钮&#xff0c;为一级功能&#xff0c;是当前工作内容的常用功能窗口&#xff0c;有十个二级窗口&#xff0c;为选中窗口时的扩展选项&#xff0c;有若干后台功能&#xff0c;可选中至前台 可最…