Oracle的去重函式 distinct

2021-08-25 13:57:03 字數 1026 閱讀 4960

sql中distinct的用法

表a:

表b:

select distinct name from a
執行後結果如下:

示例2.1

select distinct name, id from a
執行後結果如下:

實際上是根據name和id兩個欄位來去重的,這種方式access和sql server同時支援。

示例2.2

select distinct xing, ming from b
返回如下結果:

返回的結果為兩行,這說明distinct並非是對xing和ming兩列「字串拼接」後再去重的,而是分別作用於了xing和ming列。

select count(distinct name) from a;	  --表中name去重後的數目, sql server支援,而access不支援
count是不能統計多個欄位的,下面的sql在sql server和access中都無法執行。

select count(distinct name, id) from a;
若想使用,請使用巢狀查詢,如下:

select count(*) from (select distinct xing, name from b) as m;
select id, distinct name from a;   --會提示錯誤,因為distinct必須放在開頭
distinct語句中select顯示的字段只能是distinct指定的字段,其他欄位是不可能出現的。例如,假如表a有「備註」列,如果想獲取distinc name,以及對應的「備註」字段,想直接通過distinct是不可能實現的。但可以通過其他方法實現關於sql server將一列的多行內容拼接成一行的問題討

Oracle 資料去重

假設資料表a,3個字段 mid 表id bjsj 報警時間 val 資料值 篩選出2019 09 20 2019 09 25時間段內記錄,每塊表的最後一條報警記錄。做法 按條件查詢出符合條件記錄,然後取每塊表的報警時間為最大的一條記錄。oracle資料庫提供了乙個函式 row number 用於給資...

unique 去重函式

unique 函式是乙個去重函式,stl中unique的函式 unique的功能是去除相鄰的重複元素 只保留乙個 還有乙個容易忽視的特性是它並不真正把重複的元素刪除。他是c 中的函式,所以標頭檔案要加 include,具體用法如下 int num 100 unique num,mun n 返回的是n...

unique 去重函式

unique 是c 標準庫函式裡面的函式,位於標頭檔案 include中,其功能是去除相鄰的重複元素 只保留乙個 所以使用前需要對陣列進行排序 該函式的乙個使用方法,對於長度為n陣列arr,unique arr,arr n arr返回的是去重後的陣列長度 那它是怎麼實現去重的呢?刪除?不是,它並沒有...