使用分析函式row_number() over (partiion by ... order by ...)來進行分組編號,然後取分組標號值為1的記錄即可。目前主流的資料庫都有支援分析函式,很好用。
select u.*其中,partition by 是指定按哪些字段進行分組,這些字段值相同的記錄將在一起編號;order by則是指定在同一組中進行編號時是按照怎樣的順序。from
(
select
*, row_number() over (partition by id order
by uname) as
group_idx -- row_num() over 分析函式 partition by 按哪個字段分組 order by 分組後按哪個字段排序
from
people
) uwhere u.group_idx =
1 --取分組後下標為1的資料,也就是第乙個
示例(sql server 2005或以上適用):
查詢某個字段不同值各自最新的一條資料記錄SQL語句
查詢各個測站點最新的一條記錄 第一種查詢語句 if isnull stcd 某個測站點最新的一條記錄 else 各個測站點最新的一條記錄 第二種查詢語句 if isnull stcd 某個測站點最新的一條記錄 else 各個測站點最新的一條記錄 總結 這兩種都是可以查出的,但是第一種放在伺服器上執行...
oracle過濾某個字段重覆記錄,只獲取一條記錄
一,首先想到 1,關鍵字distinct 2,group by 3,max,min這樣的函式被稱為聚集函式,和group搭配起來用 但均無法實現,執行結果如下 舉例 表名 offsiteoutreachteam list 字段 corpaddlevel 獲取該字段不重複資料 channelcode,...
oracle過濾某個字段重覆記錄,只獲取一條記錄
一,首先想到 1,關鍵字distinct 2,group by 3,max,min這樣的函式被稱為聚集函式,和group搭配起來用 但均無法實現,執行結果如下 舉例 表名 offsiteoutreachteam list 字段 corpaddlevel 獲取該字段不重複資料 channelcode,...