欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解mysql數(shù)據(jù)去重的三種方式

 更新時(shí)間:2022年06月09日 09:43:03   作者:heiqi_whf  
本文主要介紹了mysql數(shù)據(jù)去重的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、背景

最近在和系統(tǒng)模塊做數(shù)據(jù)聯(lián)調(diào),其中有一個(gè)需求是將兩個(gè)角色下的相關(guān)數(shù)據(jù)?對(duì)比后將最新的數(shù)據(jù)返回出去,于是就想到了去重,再次做一個(gè)總結(jié)。

二、數(shù)據(jù)去重三種方法使用

1.?通過(guò)MySQL DISTINCT:去重(過(guò)濾重復(fù)數(shù)據(jù))

? 1.1.在使用 mysql SELECT 語(yǔ)句查詢(xún)數(shù)據(jù)的時(shí)候返回的是所有匹配的行。

SELECT t.age FROM t_user t

可以看到查詢(xún)結(jié)果返回了 10 條記錄,其中有一些重復(fù)的 age 值,有時(shí)出于對(duì)數(shù)據(jù)分析的要求,需要消除重復(fù)的記錄值。

1.2.DISTINCT 關(guān)鍵字指示 MySQL 消除重復(fù)的記錄值。

語(yǔ)法格式為:

SELECT DISTINCT <字段名> FROM <表名>;

SELECT DISTINCT t.age FROM t_user t

 由運(yùn)行結(jié)果可以看到,這次查詢(xún)結(jié)果只返回了 5 條記錄的 age 值,且沒(méi)有重復(fù)的值。

ps:

其中,“字段名”為需要消除重復(fù)記錄的字段名稱(chēng),多個(gè)字段時(shí)用逗號(hào)隔開(kāi)。

使用 DISTINCT 關(guān)鍵字時(shí)需要注意以下幾點(diǎn):

DISTINCT 關(guān)鍵字只能在 SELECT 語(yǔ)句中使用。

在對(duì)一個(gè)或多個(gè)字段去重時(shí),DISTINCT 關(guān)鍵字必須在所有字段的最前面。

如果 DISTINCT 關(guān)鍵字后有多個(gè)字段,則會(huì)對(duì)多個(gè)字段進(jìn)行組合去重,也就是說(shuō),只有多個(gè)字段組合起來(lái)完全是一樣的情況下才會(huì)被去重。

2.group by

SELECT t.age FROM t_user t GROUP BY t.age;

3.row_number窗口函數(shù)

 語(yǔ)法格式為:

row_number() over (partition by <用于分組的字段名> order by <用于組內(nèi)排序的字段名>)

項(xiàng)目使用的去重:?

select * from (select t.*,row_number() over(partition by t.children_id  order by t.update_time DESC) rn       
from mdm_data_authority_view_info t where t.DATA_CLASS_ID = '分類(lèi)id' AND t.DATA_ROLE_ID 
IN ( '角色id', '角色id' ))              
where rn = 1;  

三、總結(jié)

到此這篇關(guān)于詳解mysql數(shù)據(jù)去重的三種方式的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)去重內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論