『壹』 sql 兩個欄位去重
selectdistincto.name,c2.email_addrfromt;
t是樓主查詢結果,distinct會同時作用兩個欄位
『貳』 SQL 給一個表兩個欄位進行去重
selectmin(HotelId),HotelNamefromtab_HotelInfogrouybyHotelName
或
selectmax(HotelId),HotelNamefromtab_HotelInfogrouybyHotelName
『叄』 sql中如何去重
刪除重復數據嘛?
deletefromtt1
whererowidnotin(
selectmax(rowid)fromtt2
groupbyid)
group by 後面填寫你判定重復的列名。比如說如果有相同的id 、name、sal就算做重復,那麼group by後面加id,name,sal
『肆』 sql查詢兩個欄位相同的記錄
EXCEL中用VBA連接ACCESS資料庫
有如下一張表,要分別查找出所有同名的人、所有同名並且學號也一樣的人以及所有同名但不同學號的人。
查詢所有同名人員
select * from [18年考試成績] where [姓名] in (SELECT [姓名] FROM [18年考試成績] group by [姓名] having count(姓名)>1)
查詢結果:
查找所有姓名和學號兩個欄位都重復的人
select * from [18年考試成績] where [姓名] in (SELECT [姓名] FROM [18年考試成績] group by [姓名] having count(姓名)>1) and [學號] in (SELECT [學號] FROM [18年考試成績] group by [學號] having count(學號)>1)
查詢結果:
查找所有姓名重復但學號不重復的人
select * from [18年考試成績] where [姓名] in (SELECT [姓名] FROM [18年考試成績] group by [姓名] having count(姓名)>1) and [學號] not in (SELECT [學號] FROM [18年考試成績] group by [學號] having count(學號)>1)
注意:要把SELECT查詢子句配合in或not in 操作符使用,SELECT查詢子句只能有一列內容。
查詢結果:
其中子句 「SELECT [姓名] FROM [18年考試成績] group by [姓名] having count(姓名)>1」是顯示所有重復的姓名,如果如下:
如果要知道重復出現次數,則可以這樣寫:
SELECT [姓名],count(姓名) as 出現次數 FROM [18年考試成績] group by [姓名] having count(姓名)>1
結果如下:
查找唯一記錄
group by [姓名],意思是按姓名分組,having count(姓名)>1 是分組條件,意思是姓名次數出現2次以上的重復內容以姓名進行分組,前面的count(姓名)是對分組以後的姓名統計出現次數。在後面要使用函數條件時應該使用having,而不是使用where
查找唯一值,比如本例的班級中,只有一個「四班」,要把這個四班的所有欄位顯示出來可以這樣:
select * from [18年考試成績] where 班級 not in (SELECT 班級 FROM [18年考試成績] group by 班級 having count(班級)>1)
結果:
如果使用「SELECT DISTINCT 班級 FROM [18年考試成績]」語句查詢唯一值,結果將會如下:
DISTINCT 會顯示不重復的值,如果有重復的,只顯示第一個,所以如果需要顯示僅出現一次的值並不適合使用SELECT DISTINCT語句
分組查詢語句:
比如要班級為單位,查詢每個班的總人數,科目總分,科目平均分等
SELECT [班級],count(姓名) as 班級人數,sum(語文) as 語文總成績,sum(數學) as 數學總成績,ROUND(avg(語文),1) as 語文平均分,ROUND(avg(數學),1) as 數學平均分 FROM [18年考試成績] group by [班級]
查詢結果如下:
注意:如果使用函數的欄位,不使用AS指定別名,將會自動生成一個欄位名,第一列名字Expr1000,第二列名為Expr1001,第三列名為Expr1002,以此類推
如:
SELECT [班級],count(姓名),sum(語文),sum(數學),ROUND(avg(語文),1) ,ROUND(avg(數學),1) FROM [18年考試成績] group by [班級]
查詢結果如下:
如果不指定別名,你將無法清楚在查詢結果中知道每一列是干什麼的。
如果需要再細分,查詢每個班女生總人數和科目平均分,只需要再加一個where條件就可以了
SELECT [班級],count(姓名) as 班級女性人數,ROUND(avg(語文),1) as 語文平均分,ROUND(avg(數學),1) as 數學平均分 FROM [18年考試成績] where 性別='女' group by [班級]
『伍』 SQL根據兩列去重
select stone_id,
upcharge_title,
count(*)from your_tablegroup by stone_id,
upcharge_titlehaving count(*) > 1
『陸』 怎樣用sql去重如何實現相同姓名去重
--根據校區和學員名稱去重後的列表
select校區,學員
from表名
where收款歸屬likeN'%全款'
groupby校區,學員
--匯總每個校區,全款的去重後的人數
select校區,count(0)學員人數
from
(
select校區,學員
from表名
where收款歸屬likeN'%全款'
groupby校區,學員
)t
groupby校區
『柒』 sql查詢語句去重合並
用group by是可以進行分組的,需要指定分組之後用什麼條件,比如按照欄位2數值最小的獲取。
select 欄位1,min(欄位2),sum(欄位3) from tab1 group by 欄位1
『捌』 sql server 多欄位去重查詢
看起來只要rowno不取出來,直接distinct就可以去重復了
『玖』 sql如何進行多個欄位去重
select
distinct
列名1,列名2,列名3....
from
表名1
使用關鍵字:distinct即可去除結果集中的重復結果
『拾』 SQLSERVER 兩關聯表按一個欄位去重 其他欄位數據保留,求教
select top 1 * from table1 join table2 on table1.id=table2.id order by createtime desc