1. 程式人生 > >distinct去除重複值

distinct去除重複值

在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 distinct用於返回唯一不同的值。

表A:

表B:

1.作用於單列

select distinct name from A

執行後結果如下:

2.作用於多列

示例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列。

3.COUNT統計

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;

4.distinct必須放在開頭

select id, distinct name from A;   --會提示錯誤,因為distinct必須放在開頭

5.其他

distinct語句中select顯示的欄位只能是distinct指定的欄位,其他欄位是不可能出現的。例如,假如表A有“備註”列,如果想獲取distinc name,以及對應的“備註”欄位,想直接通過distinct是不可能實現的。但可以通過其他方法實現關於SQL Server將一列的多行內容拼接成一行的問題討論

相關推薦

distinct去除重複

在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 distinct用於返回唯一不同的值。 表A: 表B: 1.作用於單列 select distinct name from A 執行後結果如下:

DISTINCT 返回唯一不同的,去除重複

DISTINCT 用於返回唯一不同的值語法:SELECT DISTINCT 列名稱 FROM 表名稱DISTINCT用於多列 表A:SQL:select distinct name, id from A執行後結果如下:實際上是根據name和id兩個欄位來去重的,這種方式Acc

oracle查詢/去除重複

-- 查詢重複值及最小的id select min (id), province, city, count (*) cnt from t group by province, city having count (*) > 1; -- 保留最小的重複值 delete fr

weka學習(五)去除重複

** * @author hao.wei * @2018/9/17 * @desc */ @Service public class DuplicatesPreprocessImpl implements DuplicatesPreprocess { private

distinct 去除重複

mysql> alter table one add column rtime int; //新增一個時間欄位 Query OK, 8 rows affected (0.01 sec) Records: 8 Duplicates: 0 Warnings: 0 mysql>

ArrayList類去除重複

ArrayList類去除重複值 思路:建立新集合方式 明確返回值型別,返回ArrayList 明確引數列表ArrayList  步驟: 建立新集合 根據傳入的集合(老集合)獲取迭代器 遍歷老集合 通過新集合判斷是否包含老集合中的元素,

SQL:DISTINCT 去除重複

在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 distinct用於返回唯一不同的值。 表A: 表B: 1.作用於單列 select distinct name from A 執行後結果如下: 2.作用於多列 示例2.1

LINQ中使用Distinct去除重複的物件

.net中自帶的比較器Compare是值型別比較,要想比較物件,即引用型別.我們需要重寫比較器. 新建RefComparer.cs類 建立一個委託,用於傳入需要比較的物件 public delegate bool EqualsComparer<T>(T

tp5分頁去除重複

$total = User::alias('u') ->join('contract c','c.user_id=u.id','left') ->where($page_p

根據list物件中某個欄位去除重複

現象: 當集合中是物件的時候,因為每個物件都是new出來的,所以無法向字串那樣的去除重複的值。 方法: 1:需要在物件的實體類bean裡面重寫public boolean equals(Objec

Oracle使用row_number() over (partition order by)和DISTINCT去除重複記錄

            最近做的一個模組涉及到8張表的聯合查詢,由於這8張表中有很多主從表的關聯,結果在使用模糊查詢的時候查詢結果集出現了重複記錄。如下:                      

pandas去除重複drop_duplicates問題

win10電腦環境下執行程式碼如下:# 重複值處理import pandas as pd # 匯入pandas庫# 生成重複資料data1 = ['a', 3]data2 = ['b', 2]data3 = ['a', 3]data4 = ['c', 2]df = pd.D

去除List集合中的重複(四種好用的方法)(基本資料型別可用)

最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。  但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序

Java:去除List集合中的重複(四種好用的方法)

最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。  但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序

Oracle去除重複(某一列的重複),取最新(日期欄位最新)的一條資料

解決思路:用Oracle的row_number() over函式來解決該問題。 解決過程:  1.查看錶中的重複記錄 select     t.id,     t.device_id,   &nb

JQuery遍歷拼接字串,去除重複

function getStaffs(){ var staffs = {}; // 儲存隨車人員編號和隨車人員姓名並返回 staffs.id = ''; // 儲存選中的遺體的編號 staffs.N

mysql中:單表distinct、多表group by查詢去除重複記錄

單表的唯一查詢用:distinct 多表的唯一查詢用:group by distinct 查詢多表時,left join 還有效,全連線無效, 在使用mysql時,有時需要查詢出某個欄位不重複的記錄,雖然mysql提供有distinct這個關鍵字來過濾掉多餘的重複記錄只保留一

mysql中去除重複資料之distinct用法

最近利用郭神的litepal建立了郵件客戶端的前端資料庫,然後實現最近聯絡人的顯示,需要在資料庫裡去查詢傳送人的暱稱和傳送人的地址兩個欄位,但發現litepal不支援distinct查詢,但可以通過原生的sql語句實現: select distinct fromaddress,fromname

MySQLdistinct 去除查詢重複的結果

在使用MySQL時,有時需要查詢出某個欄位不重複的記錄,雖然mysql提供有distinct這個關鍵字來過濾掉多餘的重複記錄只保留一條,但往往只用它來返回不重複記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只能返回它的目標欄位,而無法返回

去除List集合中的重複(四種好用的方法)

最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。 但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用se