oracle資料庫多條資料中有欄位name有重複記

時間 2021-10-14 22:23:54

1樓:匿名使用者

create table #test (

id    int,

name  varchar(10),

age   int

);go

-- 用於測試 樓主的原始資料.

insert into #test

select  1, 'tom',    22    union all

select  2, 'tom',    23    union all

select  3, 'tom',    24    union all

select  4, 'lily',   22    union all

select  5, 'lily',   23;

-- 用於測試 年齡不是按照大小順序

insert into #test

select  101, '張三',    23    union all

select  102, '張三',    22    union all

select  103, '張三',    21;

go-- 樓主的sql

select * from #test where id in(select max(t.id) from #test t group by t.name)

goid          name       age

----------- ---------- -----------

3 tom                 24

5 lily                23

103 張三                  21

(3 行受影響)

-- 方法1:

select

*from

#test main

where

not exists( select 1 from #test sub where main.name=sub.name and main.age

2樓:匿名使用者

樓下的回答很幼稚 測試了嗎?

我幫你寫下 把表名換一下就可以了

select max(id) id, name,max(age) age from tbname

group by name

為什麼把問題搞的那麼複雜 就這麼簡單的事情 寫的越多越好嗎?

樓主的那個方法也可以 (應該是巧合 如果你的年齡不是按照大小順序的 你那個結果查詢的就不是你要的)

3樓:滿地圖找牙

select id, name, max(age)from table

group by name

很久不寫sql,語法都忘了。。。

group by 只能取兩個欄位,id應該是主鍵吧?

如果是oracle 可以用row_number試試。

select * from (select id ,name ,age,row_number() over(partition by name order by id,age desc) rn from table ) where rn=1

我這沒環境,要是有什麼幼稚的錯誤自己改改吧,思路應該是這樣。

你的追問是名字分組取出最大的id,因為是唯一主鍵所以寫的沒錯。如果你想把年齡作為條件加進去你的寫法就有問題了。

4樓:暈這都有人起了

select max(a.id),a.name,b.magfrom table a,

(select name,max(age) mag from table group by name) b

where

a.name=b.name

group by a.name,b.mag你試下

5樓:匿名使用者

distinct去重複資料用

select id,distinct(name),age from table

參考

6樓:匿名使用者

select id,name,age from table where age>all

7樓:新光飾品**

select max(id) id, name,max(age) age from emp group by name;

在oracle資料庫中,怎樣查詢出只有一個欄位的表的重複資料?

8樓:匿名使用者

方法一:可以通過group by 進行分組。

sql:select username,count(username) from tablename grop by username;

解釋:以上sql就是通過分組函式讀取出tablename表中username的值和每個不同值的統計個數。

方法二:可以通過distinct函式 進行去重查詢。

sql:select distinct username from tablename

解釋:本sql就是查詢出所有的tablename表中的username值(不重複)。

在oracle資料庫中,怎樣查詢出只有一個欄位的表的重複資料?

9樓:匿名使用者

方法一:可以通過group by 進行分組。

sql:select username,count(username) from tablename grop by username;

解釋:以上sql就是通過分組函式讀版取出tablename表中username的值和每個不

權同值的統計個數。

方法二:可以通過distinct函式 進行去重查詢。

sql:select distinct username from tablename

解釋:本sql就是查詢出所有的tablename表中的username值(不重複)。

在oracle中怎麼查一個表中的的一個欄位的重複資料?

oracle怎樣檢視資料庫中有資料的表

千鋒教育 select from all tables all tables是所有能訪問,包括其它使用者的,如果要檢視當前使用者用user tables 超級喵公主 覺得你應該先弄清楚oracle的常規資料字典的結構,像9i裡的常規資料字典中物件名稱就有以user,all,dba為字首的物件。以us...

sql資料庫和oracle資料庫哪個好

兄弟,聽我的。肯定學習oracle。原因 1 oracle是商用的最廣泛的關係型資料庫管理系統,廣泛應用於銀行 電信 電力 社保等各個領域。特別是對於unix和linux平臺,sqlserver怎麼用啊?我想你學習,肯定為了將來應用,或者工作,你的簡歷裡面寫oracle和sqlserver完全是不一...

關於oracle資料庫使用者和資料庫之間的關係

表空間,其實是 預設表空間。也就是這個使用者 create table 語句,不指定表空間的話。就預設把表,建立在那個 預設表空間 上面。沒有給他指定其它表空間的管理許可權 但使用者a能操作其它表空間,在其它表空間中建立表,是怎麼回事哪。這個要看你到底給了多少許可權給這個使用者a 你要是sql gr...