1. 程式人生 > >mysql重複資料習題【題182. 查詢重複的電子郵箱+題196. 刪除重複的電子郵箱】

mysql重複資料習題【題182. 查詢重複的電子郵箱+題196. 刪除重複的電子郵箱】

題182. 查詢重複的電子郵箱:

思路:先GROUP BY分組,再HAVING過濾分組

SELECT Email FROM Person 
GROUP BY Email
HAVING COUNT(*)>1

如果採用以下程式碼:

SELECT p1.Email FROM Person p1,Person p2
WHERE p1.Id<p2.Id AND p1.Email=p2.Email;

程式碼執行:將表p1的資料取出,遍歷表p2的資料。

假設輸入資料為:

   

輸出結果為:p1儲存了id為1,2的資料(除去最大值的資料),p2儲存了id為2,3的資料(除去最小值的資料)

題196. 刪除重複的電子郵箱:

思路:參照上面的思路,p2保留除去最小值id的重複資料,刪除p2,即保留了id為最小值的重複資料

DELETE p2 FROM Person p1,Person p2
WHERE p1.Email=p2.Email AND p1.id<p2.id;

相關推薦

mysql重複資料習題182. 查詢重複電子郵箱+196. 刪除重複電子郵箱

題182. 查詢重複的電子郵箱: 思路:先GROUP BY分組,再HAVING過濾分組 SELECT Email FROM Person GROUP BY Email HAVING COUNT(*)>1 如果採用以下程式碼: SELECT p1.Email

mysql自聯結習題181. 超過經理收入的員工+197. 上升的溫度

題181. 超過經理收入的員工: 思路:e表示員工的工資表,m表示管理層的工資表 SELECT e.name AS Employee FROM Employee e,Employee m WHERE e.ManagerId=m.Id AND e.salary&g

mysql更新資料,條件為實時查詢出來的資料

--將更新條件儲存到臨時表裡 CREATE TABLE tmp3 AS (SELECT username FROM oa_user WHERE username NOT IN (SELECT username FROM nst_t_account)); --更新表資料,條件從臨時表裡取 UP

196. 刪除重複電子郵箱

編寫一個 SQL 查詢,來刪除 Person 表中所有重複的電子郵箱,重複的郵箱裡只保留 Id 最小 的那個。 +----+------------------+ | Id | Email | +----+------------------+ | 1

leetcode 196.刪除重複電子郵箱

編寫一個SQL查詢來刪除Person表中所有重複的電子郵件,在重複的郵件中只保留Id最小的郵件。 +----+------------------+ | Id | Email | +----+------------------+ | 1 | [email pr

[LeetCode] 196. 刪除重複電子郵箱

編寫一個 SQL 查詢,來刪除 Person 表中所有重複的電子郵箱,重複的郵箱裡只保留 Id 最小 的那個。 +----+------------------+ | Id | Email

解決查詢MySQL資料庫中重複資料的問題

今天遇到一個問題,需求是查詢新採集資料中 重複資料 的條數。在採集完資料對資料進行去重查詢時sql結果不正確,因為有一部分sql是在業務程式碼中進行拼接的: “SELECT COUNT(*) FROM (“ + sql + “)_AA;” 之前的sql:SELECT 1 FROM TAB

mysql查詢表裡的重複資料方法:

    INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11')   delete from hk_test where username=

mysqlsql刪除多個欄位重複資料有主鍵和沒主鍵解決方法

table user      name age nub      張三    12  23      張三    12  23      張三    12  23      李四    13  21      李四    13  21      王五    11  25

MySQL常見的業務處理-刪除重複資料

業務場景 日常工作中我們經常會遇到這樣的場景刪除資料庫中某個表中重複的資料。現在以一個案例驅動。 需求:刪除評論表中同一訂單同一商品的重複評論,只保留最早的一條。 上圖是商品評論表

mysql查詢重複資料只保留一條記錄

比如我直接select * from movie where name="功夫";有三條資料,但我只希望拿到其中任意一條就行了。可以使用group by 分組因為name是一樣的,所以分組也就是隻有一組

Mysql語句查詢指定重複記錄和刪除重複記錄僅保留一條親測可以

對於髒資料,除了通過程式來修復,也可以通過mysql本身來修復。問題一:查詢指定組合欄位的重複記錄SELECT * FROM tb_teacher a WHERE (a.user_id, a.cr

LeetCode & 劍指offer刷查詢與排序3:41 資料流中的中位數(295. Find Median from Data Stream)

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) 41 資料流中的中位數 題目描述 如何得到一個數據流中的中位數?如果從資料流中讀出 奇數個數值,那麼 中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值

mysql 查詢重複刪除重複資料

一、根據身份證查詢重複資料 方法、select count(*) as repeat_count,sfzhm from gaj_gx_hjxx_copy1 group by sfzhm having repeat_count > 1; 二、過濾重複資料 方法1、select di

Oracle_SQL查詢/刪除重複資料(單個欄位和多個欄位條件)

oracle查詢/刪除重複的資料(單個欄位和多個欄位條件) 單個欄位: --查詢重複的全部資料(單個欄位) 思路: 1.根據欄位tid分組,數量大於1的表示tid欄位有重複的資料; 2.根據1查詢出來

mysql查詢user_id重複資料

在專案中遇到一個問題,在呼叫findByUserIdAndStartTime()這個jpa裡面的方法,報錯: javax.persistence.NonUniqueResultException: result returns more than one elements.

Mysql資料庫查詢重複資料

   今天查詢一個表中的重複資料(表中資料1萬6左右),用了兩種方法,查詢結果實在讓人驚訝 SELECT * from tab1 where CompanyName in( SELECT companyname from tab1 GROUP BY CompanyName

MySQL根據某一個或者多個欄位查詢重複資料,並且保留某欄位值最大的記錄

問題場景 當系統沒有處理好併發操作的情況下,操作人員同時操作一張表的情況下,資料庫有可能被插入相同記錄,這些會帶來隱藏的bug。 解決思路一 解決併發操作的衝突。 解決思路二 對資料庫(MySQL)某張表去重,首先確定你的業務是否允許重複,不允許你

mysql查詢篩選出多列值同時重複資料

例如表test: id name age 1 a 10 2 a 10 3 b 10 篩選出name和age不重複的資料 SELECT a.id,a.name,a.age FROM (SELECT t

mysql sql 語句 查詢重複資料刪除重複資料 只保留一條

**#例1:根據手機號customer_id查詢所有重複的資料** SELECT * FROM aad_apply_main WHERE customer_id IN (