當前位置:首頁 » 編程語言 » sql查詢欄位相同

sql查詢欄位相同

發布時間: 2022-08-10 02:25:22

1. 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 [班級]

2. SQL 查詢相同數據

select
*
from
(
select
a,b,c,d,count(a)
c
from
F
group
by
a,b,c,d)
tab
where
tab.c>1
這樣就行了啊,還有重復的記錄條數呢
樓下的更好些,select
*
from
F
group
by
a,b,c,d
having
count(*)>1
我沒想到,呵呵

3. 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]。

4. SQL查詢語句,怎樣查詢重復數據

1、第一步,打開資料庫,並創建一個包含重復數據的新用戶表,見下圖,轉到下面的步驟。

5. sql怎麼查某個欄位相同的數據

select
column_name,data_type
from
information_schema.columns
where
table_name
=
'table_1'
and
column_name='a'
如果把 and
column_name='a'
去掉,則會顯示表的所有欄位的數據類型

6. 如何用SQL語句查詢兩張表中的相同欄位數據

假設表1位table1
,表2位table2
select
a.col
from
(select
column_name
col
from
user_tab_columns
where
table_name
=
'table1')
a
,
(select
column_name
col
from
user_tab_columns
where
table_name
=
'table2')
b
where
a.col
=
b.col
這樣就可以查詢出兩個表得相同欄位了

7. SQL查找某一欄位相同,某一欄位不同的數據

創建測試表

createtablet
(avarchar(10),
bint,
cvarchar(1))

insertintotvalues('張三',1,'Y')
insertintotvalues('張三',2,'Y')
insertintotvalues('張三',3,'N')
insertintotvalues('李四',1,'Y')
insertintotvalues('王五',1,'Y')
insertintotvalues('王五',2,'Y')

執行查詢

selecta,MIN(b)b,cfromt
whereain
((distinctc)>1)
groupbya,c


結果

8. 怎麼在sql中查找多個欄位數據相同

做了一個簡單的例子:
select
c1,
wmsys.wm_concat(c2)
from
(select
1
as
c1,
2
c2
from
al
union
all
select
1,
3
c2
from
al)
group
by
c1
那你的問題可以這樣:
select
id,序列號,名稱,位置,wmsys.wm_concat(埠)
from

group
by
id,序列號,名稱,位置
這樣就可以了,wmsys.wm_concat這個是類似字元串聚合函數的東東,一個缺點是重復記錄不能太多.不然這個東西會放不下.(好像是varchar2(4000)的長度以內,這個東西也可以自己重寫的,就沒有這方面的限制了)
如果你的版本不支持的話,可以再聊,或者找下相關資料也可以.
希望對你有所幫助,祝你好運~~

9. 如何用sql語句查詢兩張表中的相同欄位數據

select * from A inner join b on a.col=b.col

除了我們在上面的例子中使用的 INNER JOIN(內連接),我們還可以使用其他幾種連接。
下面列出了您可以使用的 JOIN 類型,以及它們之間的差異。
JOIN: 如果表中有至少一個匹配,則返回行
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行

熱點內容
伺服器如何配置系統啟動硬碟 發布:2022-10-08 06:28:34 瀏覽:371
安卓怎麼設置來電手電筒閃爍 發布:2022-10-08 06:28:25 瀏覽:278
裸條密碼是多少 發布:2022-10-08 06:28:17 瀏覽:477
電腦如何使用安卓模擬器玩pubg 發布:2022-10-08 06:25:22 瀏覽:127
web遠程訪問 發布:2022-10-08 06:20:38 瀏覽:452
如何解決安卓字體不全的問題 發布:2022-10-08 06:20:25 瀏覽:471
安卓換新機恢復模式選擇哪個 發布:2022-10-08 06:20:20 瀏覽:888
androidp2p 發布:2022-10-08 06:19:25 瀏覽:387
heidisql導入sql文件 發布:2022-10-08 06:13:08 瀏覽:686
星際怪傑安卓版怎麼樣才能進去 發布:2022-10-08 06:12:45 瀏覽:891