ORACLE SQL查詢如何查詢某字段的值最大的前幾個

2021-10-05 03:09:40 字數 3291 閱讀 2383

1樓:風霜向晚

**:--第一步,建立測試用表

create table sys.test_lcy(

name varchar2(4),

value integer

--第二步,檢查表是否建立成功

select * from sys.test_lcy;

--第三步,插入試驗資料

insert into sys.test_lcy values ('我',21);

insert into sys.test_lcy values ('我',22);

insert into sys.test_lcy values ('我',12);

insert into sys.test_lcy values ('你',33);

insert into sys.test_lcy values ('你',34);

insert into sys.test_lcy values ('你',10);

insert into sys.test_lcy values ('他',20);

insert into sys.test_lcy values ('他',34);

insert into sys.test_lcy values ('他',28);

--第四步,查詢語句

select name, value

from (select name,

value,

row_number() over(partition by name order by value desc) as  rn

from sys.test_lcy)

where rn <= 2;

附註: 1. sysplay的回答和我這個的區別是,如果 ('你',34) 這個值插入三次,那麼他的語句出來的結果會出來三條,而我的結果仍然只有兩條,如上圖所示。

他的結果則變成如下圖所示:

2.兩個語句應用在不同場合,他的是用來做排名的,我的僅用來排序的。不存在誰對誰錯的問題,請根據實際情況採用。

2樓:匿名使用者

select

a,bfrom

(select

a,b,rank() over(partition by a order by b desc) rankid

from

mytable

) mytable2

where

rankid<=2

oracle中如何從表中查出某個字段相同值最多的前三個

3樓:axure夜話

按照欄位a進行分組,使用group by

統計的時候使用排名函式,比如rank()

獲取rank()函式的值<=3就可以啦

自己嘗試一下吧

4樓:育知同創教育

oracle中sql不可以查詢出某欄位相同值最多的字段。涉及到業務邏輯篩選了。

1、查詢某字段的值,對比如果相同儲存起來

2、繼續查詢,如果有相同值則繼續儲存

3、對比集合中的數,如果相同最多,把id取出來查詢即可。

5樓:匿名使用者

思路步驟:

先統計該欄位每個值出現的次數;

通過rownum或者rank函式獲取出現次數最多的3個值;

sql:

select col,t_count

from   (select col, count(1) as t_count

from   table1

group  by col

order  by t_count desc)where  rownum <= 3

6樓:飛魚

select ch.a from ( select rownum r ,count(t.a),t.

a a ct from table t group by t.a order by ct desc) ch where ch.r<3;

oracle中如何用sql實現查出某一張表中,某個欄位的值最大的10條記錄

7樓:妳的天真呢

實現例句如下:

select a.*

from table1 a where notexists (select 1 from table1 b where b.id>a.id)

或者select *

from table1 where id in(select max(id) from table1)又或者select *

from table1 where id=(select max(id) from table1)

8樓:陸俊賢

以使用者hr為例:

select rownum rn,t.*from (select employee_id,first_name,salary from employees order by salary) t where rownum <=10;

如何查詢 某字段的 乙個值 最大的前10個

9樓:匿名使用者

select * from 表 order by 排序字段 limit 0 ,10

10樓:匿名使用者

--sqlserver

select top 10 欄位dao

名專 from 表名屬 order by 欄位名desc

--oracle

select 欄位名 from (select 欄位名 from 表名 order by 欄位名 desc) t where rownum <=10

--通用,使用row_number() over(order by )

select 欄位名 from (select 欄位名,row_number() over(order by 欄位名 desc) as fid from 表名) t where fid<=10

11樓:貌似

select top 10 * from 表名

order by 欄位名 desc

oracle sql查詢,如何查詢某字段中某值最大的10個,謝謝! 20

12樓:發生等將發生

select * from table

where a = '我'

and b > 1

純mssql寫法,不知道oracle,哈哈

如何查詢課表,如何查詢課表

查詢課表方法,以新疆農業大學校為例如下圖 在校內網上去找個哈工大的同學 讓他們給你,或者你在哈工大的論壇裡面發個帖子,看有不有人回給你。求助如何查下學期課表 大學課程表怎麼查?去你們學校的教務處網上查 上學校 裡面啊,一般教學教務,或者學校 教務處裡面有 播出平台 播出日期 播出欄目cctv 8 1...

積分怎麼查詢?如何查詢積分

您可登入中國聯通app,首頁點選 服務 查詢 積分查詢 即可查詢您號碼的積分情況,同時可在此介面使用積分進行兌換充值卡 話費 流量包等。聯通手機使用者可以通過以下方式查詢積分 1 登入中國聯通網上營業廳,點選 查詢 通用查詢 可用積分 查詢可用積分。4 機主本人持有效證件到當地聯通自有營業廳查詢可用...

查詢健康碼怎麼查詢?如何查詢自己的健康碼?

若使用的是vivo手機,可檢視健康碼的方法 1 開啟微信,在聊天介面下拉,在頂部搜尋框搜尋進入小程式 國家政務服務平台 防疫健康資訊碼服務 點選領取,完成相關驗證後,即可檢視健康碼。另外點選右上角三個點 新增到桌面,可以把小程式新增到桌面,以便下次開啟。2 開啟支付寶,在頂部搜尋框搜尋 健康碼 進入...