sql重複資料只顯示一條並且統計重複次數

時間 2021-10-14 22:24:01

1樓:匿名使用者

你就沒說明白

select 字段,count(*) from 表名 group by 字段

看看是這意思不?

欄位和表名自己替換下

2樓:匿名使用者

select 姓名,身份證,max(家庭住址) 家庭住址,max(銀行帳號) 銀行帳號,max(備註) 備註,count(*) 重複條數

from tabname

group by 姓名,身份證

大致這樣(不過家庭住址、銀行帳號、備註 不是取最前面的,而是取了乙個最大的)。

3樓:木木夕木

select * from (select 姓名,身份證,家庭住址,銀行帳號,備註,row_number() over (partition by 姓名,身份證 order by numrow desc) ss

from

(select 姓名,身份證,家庭住址,銀行帳號,備註,row_number() over (partition by 姓名,身份證 order by 姓名,身份證)  numrow from 表名)  aa ) bb

where ss='1'

有點麻煩,不過可以實現

4樓:甲國英善巳

如果只是按你的結果得到資料,則語句是:

select

名字,max(金額)

金額from

表group

by名字

但感覺金額應該是統計的,比如張三顯示230,則應該是select

名字,sum(金額)

金額\from

表group

by名字

sql刪除重複資料只保留一條 100

5樓:神弟

具體的sql我不知道,但是如果沒理解錯需求是:表中有重複資料,要求保留1條!可以這樣子實現---

1、先去重查出資料;-即查出表中所有資料(都是唯一的)2、把這1份資料保留起來;-我用的工具是aqua data studio,因此查出資料後-全選-右鍵-儲存結果-其中資料格式=insert語句

3、清空表資料;

4、把第2步儲存下來的資料重新插入回表中即可;

6樓:學神it科技

案例:id 姓名 課程名稱 分數

1 張三 數學 69

2 李四 數學 89

3 張三 數學 69

刪除除了自動編號不同,其他都相同的學生冗餘資訊

按常理來說,這個sql語句應該是:

delete tablename where id not in(select min(id) from tablename group by name,kecheng,fenshu);

這種寫法在sqlserver或者oracle中是支援的,但是mysql目前是不支援的,會報類似錯:you can't specify target table 'tablename' for update ,這是因為在mysql中不能同時查詢乙個表的資料再同時進行刪除.

目前網上流行的一種解法是:

1)建立乙個臨時表,講要查詢的列的存入臨時表中

create table temp as select ...

2)在temp表和原始表中進行操作

delete from tablename

3)drop temp...

但是這種做法,不僅浪費空間資源,同時也缺乏友好性。通過觀察我們發現這類查詢要解決的是如何將子查詢中的表與主查詢中的表區分開來,因此我們可以考慮用別名的方法,將子查詢的結果放到乙個別名中。

完整的sql語句如下:

delete from tablename where id not in (select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b ) ;

解釋:select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b

這個子查詢的目的是從b中列出講篩選結果,即bid的集合。

(select min(id) as bid from tablename group by name,kecheng,fenshu) as b

將分組結果中的最小的bid當做乙個心的集合當做乙個心的子表b,

注意mid(id)一定要有乙個別名,這裡取的是bid,作為b的乙個列名,因為在上一級查詢中要用到這個列名。

sql如何查詢統計重複資料並在最後一列統計出重複次數?

7樓:術士

select name,cy,count(1) from aa group by name,cy;

select name,cy,count(1) from aa where name='w' group by name,cy;

8樓:匿名使用者

select id ,

name ,

cy ,

cotfrom [table]

left join ( select cy ,count(cy) as 'cot'

from [table]

group by cy

) b on [table].cy = b.cyorder by id

9樓:

select a.* ,b.cot from aa a left join (select cy ,count(name) as cot from aa group by cot) b on a.

cy=b.cy

sql: 查詢重複資料,並查詢出,指定條件下,該重複資料出現的次數 15

10樓:匿名使用者

--查詢指定條件下的重複次數

--測試資料

with tabname(id,name) as (select 1,'name1' union allselect 1,'name1' union allselect 1,'name1' union allselect 1,'name2' union allselect 1,'name2' union allselect 1,'name3' union allselect 2,'name1' union allselect 2,'name1' union allselect 2,'name2' union allselect 2,'name3' union allselect 3,'name1')

select id,(name1+name2+name3) as 重複次數,name1,name2,name3 from(

select id,name from tabname) as a

pivot(

count(name)

forname in (name1,name2,name3)) as b結果:

sql重複資料只顯示一條,查詢語句怎麼寫

11樓:吳佳航

sql重複資料只顯示一條,查詢語句編碼的寫法是:

如果是所有欄位都重複,使用 distinct。

如果部分字段重複,只能使用group by 或是其他的方法。

結構化查詢語言(structured query language)簡稱sql(發音:/ˈes kjuː ˈel/ "s-q-l"),是一種特殊目的的程式語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。

結構化查詢語言是高階的非過程化程式語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者了解具體的資料存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為資料輸入與管理的介面。結構化查詢語言語句可以巢狀,這使它具有極大的靈活性和強大的功能。

12樓:

select name, max(id) from  *** group by name;

13樓:射手幽靈伊

如果只是按你的結果得到資料,則語句是:

select 名字,max(金額) 金額

from 表

group by 名字

但感覺金額應該是統計的,比如張三顯示230,則應該是select 名字,sum(金額) 金額\from 表

group by 名字

14樓:匿名使用者

1、顯示最大的

select 名字,max(金額) 金額

from 表

group by 名字

2、顯示合計的

select 名字,sum(金額) 金額

from 表

group by 名字

15樓:匿名使用者

如果字段比較上可以 select 後加乙個distinct

16樓:匿名使用者

select 名字 ,max(金額)

from table

group by 名字

17樓:匿名使用者

在查詢列前面加distinct

18樓:

select distinct * from 表

19樓:匿名使用者

使用distinct關鍵字可以查詢去除重複資料,例如:select distinct t1 from table1,t1存在相同的則會去掉不會顯示

求一條sql過濾重複條件的語句

create function dbo.f str bigclassname int returns varchar 8000 as begin declare r varchar 8000 set r select r r title from product where bigclassname...

如何通過一條SQL實現一條資料關聯多個表 如表A中的一條資料關聯表B 表C 表D等其他表

1.開啟sqlserver,在物件管理器裡找到要搞的庫右鍵 任務 生成指令碼 2.在彈出的嚮導中跟著嚮導一步一步做吧,最後可以搞出一個檔案 3.一個庫就一個檔案你就直接在mysql裡執行s 搞清楚表之間的關係 例如表a用b欄位跟b的b欄位關聯,用c欄位跟表c的c欄位關聯,用d欄位跟d的d欄位關聯 s...

oracle刪除重複記錄只保留一條資料的幾種方法

你好 一種簡單方式就是直接根據你不想要的資料進行分組後儲存到另外一張表裡面 create table as select from b group id 可以寫儲存過程來實現判斷重複資料後刪除。另外一種方法就是插入的時候直接設定主見不讓他插入,直接提示不能插入。這個可以參考資料 http blog....