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 開啟支付寶,在頂部搜尋框搜尋 健康碼 進入...