id       班级        成绩
1          a              23
2          b              33
3          c               43
4          a               53
6          b               55
7          c               33

请教1:组外排序,以组为单位排序,并且给序号,以班级为分组
排成
序号     id       班级        成绩
   1        1           a             23
   1        4           a             53
   2        2           b             33
   2        7           b             55
   3        3           c             43
   3        6           c             33

请教2:组内排序
排成
序号     id       班级        成绩
   1        1           a             23
   2        4           a             53
   1        2           b             33
   2        7           b             55
   1        6           c             33
   2        3           c             43

oracle :
第一种(组外排序):

with tmp(id,  班级  , 成绩)as
(select '1','a','23' from dual union all
select '2','b','33' from dual union all
select '3','c','43' from dual union all
select '4','a','53' from dual union all
select '6','b','55' from dual union all
select '7','c','33' from dual)
select sum(r)over(order by rownum) as 序号,id,班级,成绩 from
(select t.*,casewhen lag(班级) over(partition by 班级 order by 成绩) is null then1else0end rfrom tmp t)

具体实例(ps:实际项目中的)

或者使用lag函数

lead () 下一个值

lag() 上一个值

如果lag(t.id) 根据id分组,如果上一条数据id是不相同(空的)(不存在的),那么标号数字位1,否则为0,最后合计为序号。

select sum(r) over(order by rownum) num, f.* from (SELECT t.*,casewhen lag(t.id) over(partition by t.ID order by t.LDATE) is null then1else0end rFROM vb_orders t,vb_orders_chr ocwhere t.id = oc.order_id)  f

第二种(组内排序):

with tmp(id,  班级  , 成绩)as
(select '1','a','23' from dual union all
select '2','b','33' from dual union all
select '3','c','43' from dual union all
select '4','a','53' from dual union all
select '6','b','55' from dual union all
select '7','c','33' from dual)
select row_number() over(partition by 班级 order by 成绩) as 序号, t.*from tmp t

实例:

select row_number() over(partition by c.id order by c.ldate) as 序号, c.*from (SELECT t.*FROM vb_orders t,vb_orders_chr ocwhere t.id = oc.order_id) c

组内排序和组外排序的sql写法相关推荐

  1. mysql 组内排序_mysql组内排序取最大值

    最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题.问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例 测试用例--建表 create table ...

  2. mysql怎么进行组内排序_MySQL 组内排序

    在开发中经常遇到这样一类需求:取每种类型排名前几的数据.在此我简称它为组内排序. 以下,我借鉴了别人的方法并添加自己的想法,就这类问题做一下理解: 数据准备 CREATE TABLE `test` ( ...

  3. mysql的组内排序生成序号_sql 分组查询,组内排序, 组内添加序号 (SQL Server 排序函数 ROW_NUMBER和RANK 用法总结)...

    下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库. -- 添加序列号 -- 行号用法: ROW_NUMBER() ...

  4. 如何实现Oracle先组内排序然后再组外排序

    问题描述 工作中遇到一个问题,因为我本人的SQL技术太差了,写了好久,都没有处理好,大概的需求如下,有一个列表,根据一个字段排序,排序后的结果,再根据字段排序. 问题分析 为了让读者能够充分理解这个问 ...

  5. mongodb 聚合 组内排序

    环境 mongodb:3.4 java: 1.7 前言 今天遇到的需求,使得我需要在聚合分组中的组内进行排序. 网上搜索了一番,mongodb并没有组内排序的关键字.好像sql有: 瞬间对mongod ...

  6. sql排序,组内排序

    一.排名 /*普通排名:从1开始,顺序往下排*/ SELECT cs.*,@r :=@r + 1 AS rank FROM cs,(SELECT @r := 0) r ORDER BY score; ...

  7. MySQL组内排序取最大值

    最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题.问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例 测试用例 --建表 create tabl ...

  8. mysql使用group by实现组内排序实战

    一.前言 需求是:获取用户充值总数最多的前100名,并且获取最新充值的时间和充值数量 分析下: (1)首先是要获取用户充值的总数,然后进行排序取前100: (2)要获取用户的最新一次充值时间和金额,那 ...

  9. mysql分组后组内排名_SQL实现group by 分组后组内排序

    在一个月黑风高的夜晚,自己无聊学习的SQL的时候,练习,突发奇想的想实现一个功能查询,一张成绩表有如下字段,班级ID,英语成绩,数据成绩,语文成绩如下图 实现 查询出 每个班级英语成绩最高的前两名的记 ...

最新文章

  1. 高等数学·同济七版+线性代数第六版+概率论与数理统计第四版(教材+辅导)
  2. [转]如何借助 TLS/SSL 确保套接字连接的安全(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)...
  3. 上传图片和导出文件测试用例
  4. 傅里叶变换处理音频c++_KWS-SoC——基于Wujian100的音频流关键词检测SoC拓展开发笔记之一...
  5. python中difflib_python中的difflib
  6. flink 写kafka_flink消费kafka的offset与checkpoint
  7. oracle+mybatis查询遇到CHAR类型字段
  8. Django根据现有数据库建立/更新model
  9. python 面试相关
  10. [DB2]DB2中的数值类型
  11. neo4j安装与示例
  12. ASP.NET与MVC架构区别总结
  13. 使用wsimport命令将wsdl文件生成服务端以及客户端
  14. 美国免费为全世界提供GPS服务,为什么中国还要搞“北斗”?
  15. 信利Truly M128128 的研究和驱动方法记录
  16. 学校毕业论文格式对奇数页页眉和偶数页页眉有要求,遇到问题请教
  17. 职工考勤管理信息系统数据库课设_公司员工考勤管理信息系统的设计与实现
  18. 圣诞使用循环打印以下圣诞树:要求输入树的高度,打印树
  19. Html5 打砖块游戏,加入道具和速通模式(含源码)
  20. EF migration conflicted with foreign key constraint

热门文章

  1. 如何使用DOS命令打开电脑应用程序
  2. phpcms之 如何把自己的静态模板套入到phpcms模板
  3. 汇编实验1及博客初尝试
  4. 记录VS中项目输出目录设置方法
  5. 幸福的种子—亲子共读图画书
  6. iOS compare字符串的比较
  7. js删除cookie
  8. response响应(cookie携带数据、取数据、删除cookie)
  9. 龙珠计划-机器学习-day03-基于LightGBM的分类预测
  10. 常见的六种web攻击