ORACLE先分组后排序,取出没一类的头几条数据

   --先根据A进行分组,再在组内根据B进行排序。rn<3取出每一类的头三条数据

  SELECT *

  FROM (SELECT T.B,

  T.A,

  ROW_NUMBER() OVER(PARTITION BY T.A ORDER BY T.B DESC) RN

  FROM DUAL T)

  WHERE RN <= 3;

时间: 2024-10-28 09:26:58

ORACLE先分组后排序,取出没一类的头几条数据的相关文章

sql 分组后获取其中一个字段最大值的整条记录

mysql的语句:  代码如下 复制代码 SELECT  * FROM (SELECT * FROM testTable ORDER BY createDate desc) pcc GROUP BY name Mysql中在分组前先排好序就可以找到需要的记录了,返回的就是按照name分组后不重复的符合条件的第一条记录. 在sqlserver中有很好的解决办法,  代码如下 复制代码 select * from ( select id,name,counts,createDate,row_numb

求帮助,oracle数据库,查询出每个最新时间的那一条数据

问题描述 求帮助,oracle数据库,查询出每个最新时间的那一条数据 select p.* from (select rownum as 序号 ,n.* from (select sitename as 站点名称, RecordTime as 记录时间 ,decode(avg(case item when 211 then value else null end),0,'0.00000',trim(to_char(avg(case item when 211 then value else nu

oracle数据库-跪求:oracle如何在数据分组后更新(update)?求大神指导啊~~~万分感谢

问题描述 跪求:oracle如何在数据分组后更新(update)?求大神指导啊~~~万分感谢 如题:org_info 表内容如下: ID NAME TEL ADDR OP_TYPE OCCUR_DATE 1001 aaa 888888 ppppppp 2014-07-23 1001 aaa 999999 ppppppp 2011-03-19 1002 bbb 666666 yyyyyyy 2014-09-15 1002 ipow 221 fghfghfh 2009-07-08 1002 ipow

oracle sql 分组 排序 筛选

问题描述 oracle sql 分组 排序 筛选 一个班级的学生有语文.数学.音乐等课程成绩,现求每位学生成绩最高的前两门课程: 如: 学生甲,语文:100,数学:90,音乐:80,则筛选出语文.数学: 学生乙,语文:80,数学:90,音乐:100,则筛选出数学.音乐: 尽量能用一条sql求出! 表:学生表student(id, name); 课程表course(id, name); 成绩表std_cor(id_student, id_course, score); 解决方案 SELECT *

代码-android 分组后各组之间的排序

问题描述 android 分组后各组之间的排序 我做了个貌似通讯录的功能,按照a-z来分组,比如a分组有李先生和lee这两条数据, 插入后是按照先后循序的,但是我现在想英文排在前,文字排在后,要怎么写呢,最好有代码,谢谢! 解决方案 插入后,重新自己排序,排序完后,在notify adapter 解决方案二: 为啥我感觉李先生和Lee都该在l分组而不是a分组?

关于分组后字段拼接的问题 (Oracle)

-----关于分组后字段拼接的问题 来自:www.itpub.net  最近在论坛上,经常会看到关于分组后字段拼接的问题,大概是类似下列的情形:SQL> select no,q from test2 / NO Q---------- ------------------------------001 n1001 n2001 n3001 n4001 n5002 m1003 t1003 t2003 t3003 t4003 t5003 t6 12 rows selected 最后要得到类似于如下的结果

分组后分组合计以及总计SQL语句(稍微整理了一下)

今天看到了这个文章感觉内容挺多的,就是比较乱,实在不好整理,脚本之家小编就简单整理了一下,希望大家能凑合看吧 分组后分组合计以及总计SQL语句   1)想一次性得到分组合计以及总计,sql: SELECT 分组字段 FROM 表 GROUP BY 分组字段 compute sum(COUNT(*)) 2)分组合计1: SELECT COUNT(*) FROM (SELECT 分组字段 FROM 表 GROUP BY 分组字段 )别名 3)分组合计2: SELECT COUNT(*) FROM (

循环获取分组后的孩子数值

问题描述 求助,求助Devexpress如何循环获取分组后的申请量,求助求助.新手哈谢谢帮忙 解决方案 解决方案二:引用楼主yt_wasion的回复: 求助,求助Devexpress如何循环获取分组后的申请量,求助求助.新手哈谢谢帮忙 人呢,人呢?出来帮忙了!解决方案三:你能把问题描述得详细点吗?问题又描述得不详细,测试数据也没,怎么帮你解答..真郁闷解决方案四:自己循环累加是一个办法或者你获取数据的时候直接在SQL语句里做好,直接从数据库读出来解决方案五:用代码实现:先将所有(不重复)材料名称

Oracle分析函数简介:排序

Oracle常用的用于排序的分析函数有3种,rank().dense_rank().row_number(); 测试表如下: 1.rank() 跳跃式排名 with temp as ( select t_id,t_age, rank() over(order by t_age desc) sec  from aaa ) select * from temp --where sec=1--,加上此过滤条件,即可找出排名为1的记录 如果指定分组的话,如下: with temp as ( select