『壹』 在excel中怎樣過濾重復數據
如果是excel2007或2010,在「數據」標簽下,就有一個「刪除重復項」按鈕。
如果是2003,先對該回列數據排序,然後選答中該列數據,之後,數據--數據透視表。。。--一直點 下一步,直到完成。
然後出來三個部分,將「數據透視表欄位列表」中的內容,拖動到「將行欄位拖動到此處」。這時,你就見到想要的唯一值了~~~
數據透視表的功能挺多的,只是利用了一小部分,建議多學學看看,有好處
『貳』 SQL語句對某欄位去重
sql語句通過DISTINCT關鍵字去重, 用於返回唯一不同的值。DISTINCT關鍵字需要搭配SELECT 語句使用,語法為SELECT DISTINCT 列名稱 FROM 表名稱。如果指定了 SELECT DISTINCT,那麼 ORDER BY 子句中的項就必須出現在選擇列表中,否則會出現錯誤。
(2)過濾某個欄位重復擴展閱讀:
distinct這個關鍵字用來過濾掉多餘的重復記錄只保留一條,但往往只用它來返回不重復記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重循環查詢來解決,而這樣對於一個數據量非常大的站來說,無疑是會直接影響到效率的。
distinct必須放在開頭,distinct語句中select顯示的欄位只能是distinct指定的欄位,其他欄位是不可能出現的。
『叄』 MYSQL過濾表中某幾個欄位重復的數據
場景:表中包含有group_id,worker_id,status欄位,查詢這三個欄位是否存在重復的數據。
查找某個人在某個班組內存在多個status為0的數據
查找某個人在某個班組內存在多個status為0的數據,將最小的id選出來
查找某個人在某個班組內存在多個status為0的數據,將最小的id選出來,並設置status為1
將查詢查詢結果作為where in的條件,需要select的結果再通過一個中間表select多一次,否則會報You can't specify target table for update in FROM clause。
『肆』 ACCESS資料庫內如何去除某欄位重復記錄
有兩個意義上的重復記錄,一是完全重復的記錄,也即所有欄位均重復的記錄,二是部分關鍵欄位重復的記錄,比如Name欄位重復,而其他欄位不一定重復或都重復可以忽略。
1、對於第一種重復,比較容易解決,使用
select distinct * from tableName
就可以得到無重復記錄的結果集。
如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
復制代碼代碼如下:
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。
2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下
假設有重復的欄位為Name,Address,要求得到這兩個欄位唯一的結果集
復制代碼代碼如下:
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
『伍』 sql 如何過濾重復記錄
問題背景
在一個多表查詢的sql中正常情況下產生的數據都是唯一的,但因為資料庫中存在錯誤(某張表中存在相同的外鍵ID)導致我這邊查詢出來的數據就會有重復的問題
下面結果集中UserID:15834存在多個
參考:
MSDN: OVER 子句 (Transact-SQL)
stackoverflow sql query distinct with Row_Number
SQL Trick: row_number() is to SELECT what dense_rank() is to SELECT DISTINCT
『陸』 mysql SELECT語句去除某個欄位的重復信息
SELECT語句,去除某個欄位的重復信息,例如:
表名:table
id
uid
username
message
dateline
1
6a1111284240714(時間戳)
2
6a2221268840565
3
8b4441266724527
4
9c5551266723391
執行語句(去除username欄位重復信息並按時間排序):
SELECT
*
FROM
table
a
INNER
JOIN
(
SELECT
max(
dateline
)
AS
dateline
FROM
table
GROUP
BY
uid
)
b
ON
a.dateline
=
b.dateline
GROUP
BY
id
ORDER
BY
a.dateline
DESC
結果:
id
uid
username
message
dateline
1
6a1111284240714(時間戳)
3
8b4441266724527
4
9c5551266723391
此語句用於顯示最新記錄信息,在一個區域內不允許某個信息(例如:用戶)同時出現多次(一次以上)。
後記:效率問題
開始用了個這語句:
select
*
from
table
where
dateline
IN
(
select
max(dateline)
from
table
GROUP
BY
uid
)
ORDER
BY
dateline
DESC
IN:當處理數據量比較大的時候,就沒效率可言了,所以優化成內聯,計算下快了6倍多。。。
繼續條效率就加索引了~~
『柒』 sql 如何過濾重復記錄
SQL過濾重復記錄有兩種辦法:
通過SQL結構化查詢語言來實現,在Select後面加上關鍵字DISTINCT,意思就是查詢行無重復,注意DISTINCT關鍵字是針對行,不是某一列,如果想得到某一列不重復記錄,那就SELECT DISTINCT後面只放一個欄位。
通過存儲過程,過濾重復記錄,存儲過程逐條查詢,比對之前的記錄,如果有重復就跳到下一條,如果不重復游標繼續。