sql去重查詢

2021-10-24 20:26:08 字數 580 閱讀 4388

背景:

專案有訊息推送,根據訊息推送記錄,篩選出一共有哪幾種訊息型別,並且標題和文字是什麼

表部分結構如圖:

主要是根據subject來去重所有資料,難點是,使用distinct的話,無法顯示title和content欄位

select distinct subject from messages
如果使用下面的sql,仍然顯示所有資料,因為title和content都是有不一樣的(比如支付,每個金額和時間都不一樣)

select distinct subject, content, title from messages
解決方案:

select type, subject, title, content from messages where id in(select max(id) from messages group by subject);
其中id是主鍵i

sql去重 查詢

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

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,...