ORACLE,篩選單欄位不重複的記錄,保留其他欄位.
在ORACLE中,我們常常對資料進行排序和篩選,例如:成績表中,將某一個人的所有科目成績放到一起來看,那麼我們會使用ORDER BY 語句。
例如表T1:
Name Subject Score
LI Math 84
Zhang Art 75
Li Physics 93
Zhang Math 97
Zhang Physics 71
Li Art 85
我們使用語句 SELECT *FROM T1 ORDER BY NAME 可以使得查詢結果按姓名排列。
使用語句SELECT * FROM T1 ORDER BY SUBJECT 可以使查詢結果按科目排列。(結果省略請自行操作)
對於求一個人的總分,也很好辦,我們可以使用GROUP BY 語句,將求和的結果直接按每個名字一條記錄輸出,例如:
SELECT SUM(SCORE) FROM T1 GROUP BY NAME 這樣可以得到各名字對應的總分。
事實上,類似於SUM,MAX,MIN這樣的函式被稱為聚集函式,就是和GROUP搭配起來用的。
然而很多時候我們需要的是聚集運算前的原始資訊,例如:
ID TYPE
000132 A
000212 C
000213 B
000632 A
001283 B
這樣的資訊,我們希望按組分開,而又希望保留完整的條目(每個TYPE任意一條即可),筆者在網上看到的一個機智的做法是使用MIN函式。
SELECT MIN(ID),TYPE FROM T1 GROUP BY TYPE
這樣,就取出了每個TYPE中的ID最小的一條記錄,保留住了完整的記錄資訊,達到了期待的結果。
這個例子只考慮到了一條記錄只包含兩個欄位的情況,多個欄位是否依然適用,今天來不及實驗了,請各位批評指正!如能回覆,感激不盡!
相關推薦
#oracle--刪除以id為主鍵地重複記錄,且只留下重複記錄中第一條記錄的sql語句
這道題是我面試一家金融軟體公司的筆試題,該題如下所示: 如下表,是一張使用者表,且uerid為主鍵,圖如下所示。 要求能夠通過一個sql語句刪除所有重複的記錄,並只留下重複記錄中第一條記錄的sql語句。 答案: delete from userinf
ORACLE,篩選單欄位不重複的記錄,保留其他欄位.
在ORACLE中,我們常常對資料進行排序和篩選,例如:成績表中,將某一個人的所有科目成績放到一起來看,那麼我們會使用ORDER BY 語句。 例如表T1: Name Subject Score LI Math 84 Z
oracle過濾某個欄位重複記錄,只獲取一條記錄
oracle過濾某個欄位重複記錄,只獲取一條記錄 一,首先想到: 1,關鍵字distinct 2,group by 3,MAX,MIN這樣的函式被稱為聚集函式,和GROUP搭配起來用 但均無法實現,執行結果如下 舉例: 表名:OffsiteOutreachTeam_Lis
python 1~9 任意組合兩位不重複,小於90
for n in range(1,10): num = n*10 for i in range(1,10): a = num+i b = a/i if b==11: pass elif a >
sql 刪除表中多餘的重複記錄(多個欄位),只保留一條記錄
在網上呢~自己收集了一些關於這方面的知識~ 自己整理一下 1.查詢重複記錄 select * from 表名 where 重複欄位 in (select 重複欄位 from 表名 group
刪除表中多餘的重複記錄,重複記錄是根據單個欄位(peopleId)來判斷,只留有rowid最大的記錄
delete from bizdata_cwbj.cm_fin_fb1 j where j.syear = 2009 and (SCOMPANYCODE, SYEAR, SMONTH, SRPTYPE, S
從資料表中列出某欄位不重複的所有列的資料
select * from table where id in (select min(id) from table where 1 = 1 and isused=0 and datediff(hh,addtime,'"&now()&"')<168 group by openi
MySQL根據某一個或者多個欄位查詢重複資料,並且保留某欄位值最大的記錄
問題場景 當系統沒有處理好併發操作的情況下,操作人員同時操作一張表的情況下,資料庫有可能被插入相同記錄,這些會帶來隱藏的bug。 解決思路一 解決併發操作的衝突。 解決思路二 對資料庫(MySQL)某張表去重,首先確定你的業務是否允許重複,不允許你
IT人的前沿技術書單:學不到老,就活不到老
伸縮 以及 了解 必須 設置 plot hold 設計模式 海量數據 IT人作為這個互聯網時代的弄潮兒,我們天生就處於技術浪潮的中心地帶,技術的變革讓我們不得不掌握終生學習的能力和多元化的知識領域,技術的浪潮時而沖天而起,時而又歸於平靜,但是始終在推動著人類社會向前發展。你
WIn10遠程:mstsc:出現身份驗證錯誤,要求的函數不支持, 這可能是由於CredSSP加密Oracle修正
mic rac mst windows 定位 red reg soft nor a.單擊 開始 > 運行,輸入 regedit,單擊 確定。 b.定位到 HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\S
tp5生成6位不重複驗證碼
/** * 獲取啟用碼 */ public function getnum() { $num = microtime(true); for ($i = $num; $i < ($num + 10); $i++) { //
寫一個函式,隨機生成N條不重複的手機號
方法一:import random def phone(count): results = [] while len(results)!=count: starts = [138,156,130,170,188,189] start = random.ch
生成N位不重複的隨機數
package com.jack.question.random; import java.util.Arrays; import java.util.Random; /** * @author lvh */ public class RandomArray { /* * 如題,定義一
完美實現tabsheet中融合窗體,不重複建立,並自動切換到已經建立的sheet
procedure TForm1.btn1Click(Sender: TObject); //功能說明 點選時,建立視窗並顯示到sheet中,再並點選時如果已經有則不再建立; //如果已經有開啟的則要切換成當前活動的。專案設定中取消指定窗體
【原創原始碼】批量儲存圖片到一定數量後新建資料夾繼續儲存(檔名不重複),並記錄圖片的ID、url地址以及名稱
最近寫的一小段程式碼,具體實現的功能如下: 1.反覆讀取本地一張圖片,使用opencv更改其大小為112*112 2.使用GUID給圖片命名(保證圖片名稱不會重複) 3.建立資料夾,每個資料夾存放400個圖片,滿400後建立新的資料夾(以時間命名)繼續存放...以此類推 4.記錄每張
邀請碼實現(六位不重複)
實現思路:資料庫 + UUID 小貼士: UUID是1.5中新增的一個類,在java.util下,用它可以產生一個號稱全球唯一的ID UUID由以下幾部分的組合: (1)當前日期和時間,UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一
java生成4位不重複字元(包含大寫字母、小寫字母、數字)
需要生成4位不重複的字元作為唯一引數,要求只能使用大寫字母、小寫字母和數字的組合。大寫字母26個、小寫字母26個、10個數字共62個字元。不重複排列個數:62*62*62*62=14776336個。 /** * * @author wzp * 2016-3-18
oracle查詢重複記錄,去除重複記錄
轉載自http://blog.163.com/aner_rui/blog/static/12131232820105901451809/ SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_i
m個元素的陣列,隨機選擇n個不重複元素(js實現)
問題描述: 在由m個元素的source陣列中,隨機選擇n個不重複的元素放入新陣列target 注:source陣列元素本身不重複,m>n 解決方案 方案一: 根據陣列source,在0到source.length-1範圍內隨機一個數作為下標,
查詢表中多餘的重複記錄(多個欄位)
select a.* from entest a,(select article_id,users_id from entest group by article_id,users_id having