sql去重 查詢

2021-09-23 18:29:41 字數 799 閱讀 9156

有重複資料主要有一下2種情況:

1.存在兩條完全相同的紀錄

這是最簡單的一種情況,用關鍵字distinct就可以去掉

例子: select distinct * from table(表名) where (條件)

2.存在部分字段相同的紀錄(有主鍵id即唯一鍵)

如果是這種情況的話用distinct是過濾不了的,這就要用到主鍵id的唯一性特點及group by分組

例子:select * from table where id in (select max(id) from table group by [去除重複的欄位名列表,…])

**親測:

select

startsole,

type,

stock_no stockno,

time,

operator,

stock,

outbound_type as outboundtype,

warehouse_type as warehousetype,

order_no as orderno,

warehouse_name as warehousename,

warehouser,

out_type as outtype,

remark,

is_del as isdel

from

stock_operation

where

id in ( select max( id ) from stock_operation group by startsole )

sql去重查詢

背景 專案有訊息推送,根據訊息推送記錄,篩選出一共有哪幾種訊息型別,並且標題和文字是什麼 表部分結構如圖 主要是根據subject來去重所有資料,難點是,使用distinct的話,無法顯示title和content欄位 select distinct subject from messages如果使...

SQL 部分欄位去重查詢

在要刪除的有重複資料中存在幾種情況 1.存在兩條完全相同的紀錄 這是最簡單的一種情況,用關鍵字distinct就可以去掉。example select distinct from table 表名 where 條件 2.存在部分字段相同的紀錄 有主鍵id即唯一鍵 如果是這種情況的話用distinct...

sql去重查詢優化記錄

好久沒寫筆記了,來記一次優化sql的過程。因為資料庫裡設定了only full group by,所以select的字段只能與group by的字段相同,或是使用聚合函式,所以不能直接用下面的sql 且在這張表中,id越大資料越新,因此先在乙個子查詢裡用group by分組去重,取出每組的最大id,...