有重複資料主要有一下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,...