SQL去重
現在有一張表t(id,name),id是主鍵,name可以重復,現在要刪除重復數據,保留id最小的數據。請寫出SQL。
表:t
id name
1 張三
2 張三
3 李四
4 李四
5 李四
分析:
首先通過名字分組,選出每組id最小記錄。然後刪除這些記錄以外的所有數據。
1:select min(id) id,name from t groud by name.
重點:min(),groud by, not exists()
完整的SQL:
delete from t a where notexists( select * from ( select min(id) ,name from t group by name) b where a.id=b.id)
SQL去重
相關推薦
SQL去重
pre 去重 復數 del nbsp col cnblogs where 記錄 sql去重 現在有一張表t(id,name),id是主鍵,name可以重復,現在要刪除重復數據,保留id最小的數據。請寫出SQL。 表:t id name 1 張三
sql去重;同一條資料出現多條取一條的sql語句
理論上相同資料個別欄位值不同重複問題: 1.某欄位重複,其他欄位值不同時,按重複欄位分組只取一條的sql語句 (eg:相同的資料某個欄位值有差別導致儲存兩條或多條無意義重複資料的情況)select s.* from ( select a.*, row_number()
Sql去重及查詢重複
1、最簡單的是使用distinct,去除所有查詢欄位資訊一樣的資料 ---------------------------------------以下為有主鍵的情況下使用 2、 查詢,去重,保留最小id資訊select * from people where id in
sql 去重
這個我自己寫的,效率什麼的沒考慮過:DELETE FROM tb_trademarksjaddtype_23 WHERE row not in (SELECT t.row FROM (SELECT row FROM tb_trademarksjaddtype_23 GROUP
SQL 去重不用distinct如何實現?
1、今日面試問到SQL語句去重關鍵字?一時只想起來distinct【果然一定要注意總結啊 答:用distinct關鍵字只能過濾查詢欄位中所有記錄相同的(記錄集相同),而如果要指定一個欄位卻沒有效果,另外distinct關鍵字會排序,效率很低 。 select distin
sql 去重並排序問題
欄位1 欄位2 欄位3 1 a A 2 a B 3 b V 4 b F 5 c O 6 d G 類似上邊的表,現在想去重查
sql去重和程式碼去重
最近做專案,兩張表都是百萬資料的表,其中一主一從,客戶要根據主表從從表中獲取一條有效資料,從表資料很多髒資料,開始用sql去重發現速度很慢,後來用程式碼去重了 列表查詢,一般就是幾十條資料,先查出主表id的集合,再根據主表的集合查所有從表資料,程式碼去重的關鍵是,查從表時
sql 去重排序及 java分頁
+= 顯示 分享圖片 shm search reat ati ima message 一、sql去重排序: 需求,對數據庫數據按mfrom去重(顯示最新數據),並對去重後的數據按mcreated_time進行倒序排列: sql語句為: (1)SELECT * FR
SQL腳本去重分組統計
數據 values name var logs 記錄 寫入 varchar 分享 需求:首先有一張表記錄學生姓名、科目和成績,然後模擬插入幾條數據,腳本如下: create table score ( Name nvarchar(20),--姓名
sql根據最小值去重
tab light sys 所有 not in clas lec proc 最大的 CREATE TABLE temp2 AS SELECT MAX(id) id FROM sys_oper_procenter GROUP BY pro_title 創建一個temp
017-Hadoop Hive sql語法詳解7-去重排序、數據傾斜
col 去重排序 sel cluster 可能 更多 分發 指定 clust 一、數據去重排序 1.1、去重 distinct與group by 盡量避免使用distinct進行排重,特別是大表操作,用group by代替 -- 不建議 selec
thinkphp去重統計數據sql
別人 table rom pos auth 計數 style user 不同的 DISTINCT 方法用於返回唯一不同的值 官方文檔給出的示例: $Model->distinct(true)->field(‘userName‘)->select();
SQL Server去重和判斷是否為數字——OBJECT_ID的使用
當前 max table tool sys isn 數據 toolbar tro sql 語句查詢時去掉重復項: 使用 distinct 去掉重復項: 首先可以明確的看到存在重復的名字,那麽接下來就讓我們試試使用 distinct 去重吧。 1 select dis
sql-distinct去重語句
原資料表exercise: select distinct(name) from exercise; select distinct(name),myorder from temp.exercise; select distinct(name),myorder,time from
SQL left join 左表合併去重技巧總結
建表: CREATE TABLE `table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(60) DEFAULT NULL, `age` varchar(200) DEFAULT NULL,
SQL left join去重
MySQL version: 5.7 這部分可以忽略掉了 -- 一點碎碎念 突然看到上次更新是6月份的事了,兜兜轉轉又是倆月。工作忙不忙看臉上的疙瘩就知道( ╯□╰ )。 被報表虐了一回,正面死磕,現在居然對它有點偏愛~ 一直到線上出了個還比較明顯的問題,又累又無奈的說:bye-
COUNT分組條件去重的sql統計語句示例(mysql)
常規情況下的sql分組統計為: select count(1) from 表 where 條件 group by 欄位; 但是有時往往需要新增不同的條件已經去重的統計以上語句就不能滿足需求。 解決方案為: 1.新增條件的統計方案: COUNT(CASE WHEN 條件 THEN 1
使用SQL語句完成資料表的去重工作
引入問題 可能大家都遇到過這樣一種情況,一張表存在若干行資料,只是主鍵值相同,但是其它欄位都是相同的,這就是我們通常所說的資料庫重複資料,那我們是如何將這些資料刪除呢?現在我們就介紹一種方法來實現資料庫資料的去重工作。 模擬問題
根據某個欄位去重 根據另一個欄位排序的一個SQL
背景:一張表 有 name , crt_time , work_sts 三個欄位 這張表裡存在這樣的資料 'a', '2018-12-18 21:37:24', '未''a', '2018-12-19 09:37:24', '完''a', '2018-12-19 21:37:24', '未''b', '2
根據兩個欄位去重SQL語句
delete from aop_app_ipmlinfo a where a.impl_id not in ( select max(t.impl_id) c from aop_app_ipmlin