SQL中遇到多條相同內(nèi)容只取一條的最簡單實現(xiàn)方法
SQL中經(jīng)常遇到如下情況,在一張表中有兩條記錄基本完全一樣,某個或某幾個字段有些許差別,
這時候可能需要我們踢出這些有差別的數(shù)據(jù),即兩條或多條記錄中只保留一項。
如下:表timeand
針對time字段相同時有不同total和name的情形,每當(dāng)遇到相同的則只取其中一條數(shù)據(jù),最簡單的實現(xiàn)方法有兩種
1、select time,max(total) as total,name from timeand group by time;//取記錄中total最大的值
或 select time,min(total) as total,name from timeand group by time;//取記錄中total最小的值
上述兩種方案都有個缺點,就是無法區(qū)分name字段的內(nèi)容,所以一般用于只有兩條字段或其他字段內(nèi)容完全一致的情況
2、select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total);
此中方案排除了方案1中name字段不準(zhǔn)確的問題,取的是total最大的值
上面的例子中是只有一個字段不相同,假如有兩個字段出現(xiàn)相同呢?要求查處第三個字段的最大值該如何做呢?
其實很簡單,在原先的基礎(chǔ)上稍微做下修改即可:
原先的SQL語句:
select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total);
可修改為:
select * from timeand as a where not exists(select 1 from timeand where a.time = time and (a.total<total or (a.total=total and a.outtotal<outtotal)));
其中outtotal是另外一個字段,為Int類型
以上就是SQL中遇到多條相同內(nèi)容只取一條的最簡單實現(xiàn)方法的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SQL數(shù)據(jù)庫優(yōu)化大總結(jié)之百萬級數(shù)據(jù)庫優(yōu)化方案
網(wǎng)上關(guān)于SQL優(yōu)化的教程很多,但是比較雜亂。近日有空整理了一下,寫出來跟大家分享一下,其中有錯誤和不足的地方,還請大家糾正補(bǔ)充2015-12-12你真的了解觸發(fā)器么 數(shù)據(jù)實時同步更新問題剖析
觸發(fā)器就是我們想要的神器了。我們可以在那張動態(tài)表上新建觸發(fā)器。觸發(fā)器的實質(zhì)就是個存儲過程,只不過他調(diào)用的時間是根據(jù)所建的動態(tài)表發(fā)生該表而執(zhí)行(即:Insert新數(shù)據(jù),Update或者Delete數(shù)據(jù))具體怎么使用觸發(fā)器,今天我這里就不介紹了2013-01-01sql server遞歸子節(jié)點、父節(jié)點sql查詢表結(jié)構(gòu)的實例
本文通過實例給大家介紹了sql server遞歸子節(jié)點、父節(jié)點sql查詢表結(jié)構(gòu)的實例解析,非常不錯,具有參考借鑒價值,需要的的朋友參考下2017-02-02編寫SQL需要注意的細(xì)節(jié)Checklist總結(jié)
本周技術(shù)研究部(TRD)的一名DBA 對我們編寫SQL時的一些問題,進(jìn)行了匯報講演,以下是來自它的腳本,我在它講演的基礎(chǔ)上寫出了自己想表述的,以便于大家相互交流學(xué)習(xí)2012-08-08SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法
這篇文章主要介紹了SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法,涉及SQLSERVER數(shù)據(jù)庫的簡單設(shè)置技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06SQLServer行轉(zhuǎn)列實現(xiàn)思路記錄
SQLServer行轉(zhuǎn)列的sql語句有很多,可以使用靜態(tài)的、動態(tài)的、Case When等等,均能實現(xiàn)2014-06-06sql server中通過查詢分析器實現(xiàn)數(shù)據(jù)庫的備份與恢復(fù)方法分享
sql server中通過查詢分析器實現(xiàn)數(shù)據(jù)庫的備份與恢復(fù)方法分享,需要備份或還原數(shù)據(jù)庫的朋友可以參考下2012-05-05