LeetCode 196. 刪除重復的電子郵箱

原題題目

表:?Person

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| email       | varchar |
+-------------+---------+
id 是該表的主鍵列(具有唯一值的列)。
該表的每一行包含一封電子郵件。電子郵件將不包含大寫字母。

編寫解決方案?刪除?所有重復的電子郵件,只保留一個具有最小?id?的唯一電子郵件。

(對于 SQL 用戶,請注意你應該編寫一個?DELETE?語句而不是?SELECT?語句。)

運行腳本后,顯示的答案是?Person?表。驅動程序將首先編譯并運行您的代碼片段,然后再顯示?Person?表。Person?表的最終順序?無關緊要?。

返回結果格式如下示例所示。

示例 1:

輸入: 
Person 表:
+----+------------------+
| id | email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+
輸出: 
+----+------------------+
| id | email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
+----+------------------+
解釋: john@example.com重復兩次。我們保留最小的Id = 1。

方法一 分組

先對郵箱進行分組,然后查找郵箱最小id,形成一個子查詢。

遍歷表格,如果id不在子查詢結果里,則刪除。

注意:

1、這段代碼在leetcode系統上可行,但是在本地運行中可能會報錯1175,解決方法是解除安全模式,具體參考? MySQL報錯之1175和1093-CSDN博客

2、這里在子查詢外層再嵌套一個查詢,因為不能同時對一個表執行子查詢后再執行刪除操作。否則會報錯1093,具體參考? MySQL報錯之1175和1093-CSDN博客

delete from Person where id not in
(select * from (select min(t1.id)
from Person as t1
group by t1.email) a);

方法二 窗口函數

用row_number(),按id升序,序號>1的就是重復且id較大的

注意事項與方法二一致

delete from Person
where id not in (
select id
from (select *,row_number() over(partition by email order by id) rowNumber
from Person) a
where rowNumber = 1
)

方法三 自連接

注意:在leetcode上成功運行,但是在本地mysql報錯1175,解決方法是解除安全模式

DELETE p1 FROM Person p1,Person p2
WHEREp1.Email = p2.Email AND p1.Id > p2.Id

方法四 臨時表實現分組

臨時表解決安全模式(1175報錯)和同時對一張表進行刪除和查詢操作(1093報錯)

注意:此方法只能在本地mysql上運行,而在leetcode上執行報錯

-- 第一步:創建臨時表存儲要刪除的 id
CREATE TEMPORARY TABLE temp_to_delete (id INT);-- 第二步:將要刪除的 id 插入到臨時表中
INSERT INTO temp_to_delete (id)
SELECT id
FROM Person
WHERE id NOT IN (SELECT MIN(id)FROM PersonGROUP BY email
);-- 第三步:使用臨時表刪除記錄
DELETE FROM Person
WHERE id IN (SELECT id FROM temp_to_delete);-- 第四步:刪除臨時表
DROP TEMPORARY TABLE temp_to_delete;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78775.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78775.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78775.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于WebUI的深度學習模型部署與應用實踐

引言 隨著深度學習技術的快速發展,如何將訓練好的模型快速部署并提供友好的用戶交互界面成為許多AI項目落地的關鍵。WebUI(Web User Interface)作為一種輕量級、跨平臺的解決方案,正被廣泛應用于各類AI模型的部署場景。本文將詳細介紹基于Python生態構建WebUI的技術方案,包…

Spring AI Alibaba-03- Spring AI + DeepSeek-R1 + ES/Milvus + RAG 智能對話應用開發全流程

Spring AI Alibaba-03- Spring AI DeepSeek-R1 ES/Milvus RAG 智能對話應用開發全流程 在[人工智能](AI)應用中,模型通常需要訪問外部資源或執行特定操作,例如數據庫查詢、調用外部API或執行計算任務。Spring AI,作…

某團小程序mtgsig,_token 生成邏輯分析

前言 本文章中所有內容僅供學習交流,抓包內容、敏感網址、數據接口均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關,若有侵權,請聯系我立即刪除! 太久不更新 重新找回號 …

nginx服務--基礎

1. nginx 介紹 Nginx (engine x) 是一個輕量級,高性能的 HTTP 和 反向代理 服務,也是一個IMAP/POP3/SMTP服務。因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。其特點是占有內存少,并發能力強 2. nginx優勢 1.高并發,高性能 2.高可靠---可以7*24小時…

python如何word轉pdf

在Python中,將Word文檔(.docx或.doc)轉換為PDF可以通過多種庫實現。以下是幾種常見的方法及詳細步驟: 方法1:使用 python-docx comtypes(僅Windows,需安裝Word) 適用于Windows系統…

Galini AI 技術實現方案及 GitHub 開源庫推薦

Galini AI 技術實現方案及 GitHub 開源庫推薦 1. Galini AI 的技術實現方案 根據前面的行業分析,Galini AI 的核心功能圍繞 AI 驅動的通信安全,其技術實現可能包括以下模塊: 模塊 1:實時通信內容分析 功能:實時檢測…

DXFViewer進行中2 -> 直線 解析+渲染 ?已完成

DXFViewer進行中 : -&#xff1e;封裝OpenGL -&#xff1e; 解析DXF直線-CSDN博客https://blog.csdn.net/qq_25547755/article/details/147723906 上篇博文 解析dxf直線635條 1. DXFViewer.h #pragma once #include "Application.h" #include <stdio.h> #inc…

[pdf,epub]292頁《分析模式》漫談合集01-59提供下載

《分析模式》漫談合集01-59的pdf、epub文件提供下載&#xff0c;地址&#xff1a; umlchina.com/url/ap.html&#xff0c;或查看本賬號的CSDN資源。 已排版成適合手機閱讀&#xff0c;pdf的排版更好一些。

VTK 系統架構

VTK (Visualization Toolkit) 是一個功能強大的開源可視化系統,其架構設計體現了面向對象和管道處理的思想。以下是 VTK 系統的主要架構組成: 1. 核心架構層次 1.1 數據模型層 (Data Model) vtkDataObject: 所有數據對象的基類 vtkDataSet: 幾何/拓撲數據的基類 (如 vtkPol…

移動應用開發:自定義 View 處理大量數據的性能與交互優化方案

實現 1 萬條數據下流暢滑動與靈敏交互的完美平衡。 一、數據渲染優化&#xff1a;從 1 萬條到絲滑體驗 &#xff08;一&#xff09;視圖復用機制 視圖復用是提升大量數據渲染性能的關鍵策略。以一個簡單的自定義列表視圖為例&#xff0c;我們可以構建如下的復用池管理機制&a…

aws(學習筆記第四十一課) image-content-search

文章目錄 aws(學習筆記第四十一課) image-content-search學習內容&#xff1a;1. 整體架構1.1 代碼鏈接1.2 關鍵架構流程1.3 upload圖像文件的動作1.4 search圖像文件的動作 2. 代碼解析2.1 yml文件配置詳細設定2.1.1 yml文件2.1.2 yml文件文件解析 2.2 創建s3 bucket2.3 創建A…

基于Python+MongoDB貓眼電影 Top100 數據爬取與存儲

前言&#xff1a;從貓眼電影排行榜頁面&#xff08;TOP100榜 - 貓眼電影 - 一網打盡好電影 &#xff09;爬取 Top100 電影的電影名稱、圖片地址、主演、上映時間和評分等關鍵信息&#xff0c;并將這些信息存儲到本地 MongoDB 數據庫中&#xff0c;&#x1f517; 相關鏈接Xpath&…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】2.5 事務與鎖機制(ACID特性/事務控制語句)

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 PostgreSQL 事務與鎖機制深度解析:ACID 特性與事務控制全流程2.5 事務與鎖機制2.5.1 ACID 特性與實現原理2.5.1.1 ACID 核心概念2.5.1.2 MVCC(多版本并發控制)與WAL(預寫式日志)協同效應2.5.2 事務…

榮耀A8互動娛樂組件部署實錄(終章:后臺配置系統與整體架構總結)

作者:被配置文件的“開關參數”折磨過無數次的運維兼后端工 一、后臺系統架構概述 榮耀A8組件后臺采用 PHP 構建,配合 MySQL 數據庫與 Redis 緩存系統,整體結構遵循簡化版的 MVC 模式。后臺主要實現以下核心功能: 系統參數調控與配置熱更新 用戶管理(封號、授權、角色) …

Transformer 與 LSTM 在時序回歸中的實踐與優化

&#x1f9e0; 深度學習混合模型&#xff1a;Transformer 與 LSTM 在時序回歸中的實踐與優化 在處理多特征輸入、多目標輸出的時序回歸任務時&#xff0c;結合 Transformer 和 LSTM 的混合模型已成為一種有效的解決方案。Transformer 擅長捕捉長距離依賴關系&#xff0c;而 LS…

QT —— 信號和槽(帶參數的信號和槽函數)

QT —— 信號和槽&#xff08;帶參數的信號和槽函數&#xff09; 帶參的信號和槽函數信號參數個數和槽函數參數個數1. 參數匹配規則2. 實際代碼示例? 合法連接&#xff08;槽參數 ≤ 信號參數&#xff09;? 非法連接&#xff08;槽參數 > 信號參數&#xff09; 3. 特殊處理…

設計模式簡述(十七)備忘錄模式

備忘錄模式 描述組件使用 描述 備忘錄模式用于將對象的狀態進行保存為備忘錄&#xff0c;以便在需要時可以從備忘錄會對象狀態&#xff1b;其核心點在于備忘錄對象及其管理者是獨立于原有對象之外的。 常用于需要回退、撤銷功能的場景。 組件 原有對象&#xff08;包含自身…

標簽語句分析

return userList.stream().filter(user -> {String tagsStr user.getTags(); 使用 Stream API 來過濾 userList 中的用戶 解析 tagsStr 并根據標簽進行過濾 假設 tagsStr 是一個 JSON 格式的字符串&#xff0c;存儲了一個標簽集合。你希望過濾出包含所有指定標簽的用戶。…

【應用密碼學】實驗四 公鑰密碼1——數學基礎

一、實驗要求與目的 學習快速模冪運算、擴展歐幾里得、中國剩余定理的算法思想以及代碼實現。 二、實驗內容與步驟記錄&#xff08;只記錄關鍵步驟與結果&#xff0c;可截圖&#xff0c;但注意排版與圖片大小&#xff09; 1.快速模冪運算的設計思路 快速模冪運算的核心思想…

WebSocket與Socket、TCP、HTTP的關系及區別

1.什么是WebSocket及原理 WebSocket是HTML5中新協議、新API。 WebSocket從滿足基于Web的日益增長的實時通信需求應運而生&#xff0c;解決了客戶端發起多個Http請求到服務器資源瀏覽器必須要在經過長時間的輪詢問題&#xff0c;實現里多路復用&#xff0c;是全雙工、雙向、單套…