『壹』 sql查詢按兩個欄位查詢重復記錄
用關鍵字 stinct,select stinct 欄位,是不重復的意思。代碼的實例如下:
查詢order_id和loan_lind兩個欄位相同的記錄:
select distinct a.order_preview_id, a.order_id, a.loan_kind
from ddk_order_preview_info a
join ddk_order_preview_info b
on a.order_preview_id != b.order_preview_id
where a.order_id = b.order_id and a.loan_kind = b.loan_kind;
(1)sql兩個欄位重復擴展閱讀
SQL資料庫查詢出一張表中重復的數據,按某個欄位來查找的實例:
例如表名為Course:
補充:
如:查詢每個姓名出現大於2次,SQL如下
SELECT COUNT(NAME) as '出現次數', NAME FROM 表名
GROUP BY NAME HAVING count(NAME) > 2 ORDER BY 出現次數 DESC
『貳』 如何用sql 查找兩個欄位重復的記錄,並列出重復記錄
如何用sql 查找兩個欄位重復的記錄,並列出重復記錄
select *
from shiyan003 a
where exists (select 1
from (select xm, sfzhm
from shiyan003
group by xm, sfzhm
having count(*) > 1) s
where s.xm = a.xm
and s.sfzhm = a.sfzhm)
『叄』 sql怎麼同時去掉兩個欄位的重復
select max(id),uid, username from tables group by uid, username 這句是正解。
看到你的補充,我想問一下,如果你想要得到所有的ID值也就是123,那麼1和3是重復的,而你又不想要,那麼,3的地方填什麼?空嗎?
『肆』 如圖,sql server兩個欄位都相同的話即為重復,查詢時怎麼去重復
假設有下列一張表:
--去掉重復的記錄
selectID,Code,ColorNumfrom
(
SELECT
ROW_NUMBER()OVER(
PARTITIONBYCode+ColorNum
ORDERBYCode+ColorNum
)rn,
ID,Code,ColorNum
FROMTwoColumns
)a
where
a.rn=1
orderbyID
『伍』 sql語句如何查詢一個表中某兩個欄位的相同數據
查詢一個表中某兩個欄位的相同數據代碼是:Select Name,ID From A group by Name,ID having count (*)>1。
結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;
sql 語句就是對資料庫進行操作的一種語言。
sql="select * from 數據表 where欄位名=欄位值 order by欄位名[desc]"(按某個欄位值降序排列,默認升序ASC);
sql="select * from 數據表 where欄位名like '%欄位值%' order by 欄位名 [desc]";
sql="select top 10 * from 數據表 where欄位名=欄位值 order by 欄位名 [desc]";
sql="select top 10 * from 數據表 order by 欄位名 [desc]";
sql="select * from 數據表 where欄位名in ('值1','值2','值3')";
sql="select * from 數據表 where欄位名between 值1 and 值2"。
sql語句:
更新:update table1 set field1=value1 where 范圍;
查找:select * from table1 where field1 like '%value1%' (所有包含'value1'這個模式的字元串);
排序:select * from table1 order by field1,field2 [desc];
求和:select sum(field1) as sumvalue from table1;
平均:select avg(field1) as avgvalue from table1;
最大:select max(field1) as maxvalue from table1;
最小:select min(field1) as minvalue from table1[separator]。
『陸』 sql語句,在同一張表中篩選出重復的行 至少 2個欄位都是重復的行,這個語句應該怎麼寫
SELECT t.* FROM 表1 t1
INNER JOIN
(
select
欄位1,欄位2
from 表1
group by 欄位1,欄位2
having count(欄位1)>1
) t2
ON t1.欄位1=t2.欄位1
AND t1.欄位2=t2.欄位2
『柒』 SQL 語句查詢同一欄位中重復的2個以上同時存在的數據
select 收費項目名稱,count(*) from tab
group by 收費項目名稱
having count(*) >= 2
『捌』 sql兩個表,兩個欄位中有一個相同,就把它們列出來
可以用exists子句實現,如select * from tablea a where exists (select 1 from tableb b where b.身份證=a.身份證)or
exists (select 1 from tableb c where c.手機號=a.手機號)
『玖』 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 [班級]