表資訊重複處理

2021-06-07 03:43:54 字數 1109 閱讀 9852

oracle——distinct的用法

2023年07月16日 下午 3:18

distinct這個關鍵字來過濾掉多餘的重覆記錄只保留一條,但往往只用 它來返回不重覆記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重迴圈查詢來解決,而這樣對於乙個資料量非常大的站來說,無疑是會直接影響到效率的。

下面先來看看例子:

table表

欄位1     欄位2

id        name

1           a

2           b

3           c

4           c

5           b

庫結構大概這樣,這只是乙個簡單的例子,實際情況會複雜得多。

比如我想用一條語句查詢得到name不重複的所有資料,那就必須使用distinct去掉多餘的重覆記錄。

select distinct name from table

得到的結果是:

nameab

c好像達到效果了,可是,我想要得到的是id值呢?改一下查詢語句吧:

select distinct name, id from table

結果會是:

id name

1 a2 b

3 c4 c

5 bdistinct怎麼沒起作用?作用是起了的,不過他同時作用了兩個字段,也就是必須得id與name都相同的才會被排除。。。。。。。

我們再改改查詢語句:

select id, distinct name from table

很遺憾,除了錯誤資訊你什麼也得不到,distinct必須放在開頭。難到不能把distinct放到where條件裡?能,照樣報錯。

下面方法可行:

select *, count(distinct name) from table group by name

結果:id name count(distinct name)

1 a 1

2 b 1

3 c 1

最後一項是多餘的,不用管就行了,目的達到。。。。。

group by 必須放在 order by 和 limit之前,不然會報錯

設定年級課程資訊 臨時表刪除重複資訊

雖然我後來才反應過來乙個編號對應著乙個課程看,但是當我們查詢的資訊內容重複的時候,怎麼辦?首先,我先對 進行修改 紅線這行 的意思便是查詢的臨時表資訊是不重複的。distinct關鍵字可從 select 語句的結果中除去重複的行。如果沒有指定 distinct,那麼將返回所有行,包括重複的行。但是當...

表中重複資料的處理

表中重複資料的處理 說明 tabname為有重複資料的表名,tabname new為新建的表名 1.create table tabname new 2.alter table tabname new add constraints primary key 唯一索引列 constraint tabl...

重複表操作

using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...