目录

我想要的效果

Group By

Group By 语法

Group By 错误示例

重点提醒

功能实现(partition by 分区函数)


以往查询出来的数据想要按照某一个字段分组展示,直接按照这个字段排一下序就了事了(前提是原本没有按照其他字段排序)

我想要的效果

查询出来的数据,在按照A字段排过序的情况下,按照B字段分组,分完组后,同一组的数据按照C字段再排序

(目前只做到了先按照B分组,然后再按照C排序,A的那一部分还没找到办法,后面专门再招时间研究研究)

例如:一张表里有  姓名,户籍,年龄,创建时间  三个字段,我想要查询出来的数据按照 创建时间排序,然后按照 户籍 分组,同一组的人按照 年龄 排序。

Group By

Group By 语法

首先摆一下Oracle中 group by 的语法:

SELECT column_name,sum(column_name),max(column_name)
FROM table_name
GROUP BY column_name;

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。(这句话看不懂没关系,咱们看下面的重点提醒)

Group By 错误示例

如果写成以下模式

SELECT column_name,column_name_A,column_name_B
FROM table_name
GROUP BY column_name;

查询内容里出现了 group by 里没有的字段column_name_A、column_name_B,那么会给出 ORA-00979:不是GROUP BY表达式 的提示(图是我随便搜的,偷个懒)

重点提醒

group by 只能搭配聚合函数使用,意味着,只能对你分完组后的数据进行分析处理

例如:

select
a.ssex,
-- 聚合函数
COUNT(*),MAX(a.Sage),MIN(a.Sage),AVG( a.Sage)
from student a
GROUP BY a.ssex

查询结果:(应该存年龄来着,只存了出生时间,avg有点奇怪,不要在意这些细节)

group by 详细内容可以看一下菜鸟教程

https://www.runoob.com/sql/sql-groupby.html

功能实现(partition by 分区函数)

从一开始想到group by的时候就已经走入了误区,group by只适合配合一些聚合函数做分析处理

这个功能实现的关键在于partition by(分区函数)

这里摆一下SQL:

select a.Sname,a.SID ,a.Ssex,a.Sage,rank() over(partition by a.Ssex order by a.Sage)
from student a -- rank()这一类的函数别忘了写,有一些其他的内容可以替换-- rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)。-- dense_rank()是连续排序,有两个第二名时仍然跟着第三名,相比之下row_number是没有重复值的。

查询效果:

一些partition by详细使用细节可以参考以下链接

https://blog.csdn.net/weixin_44547599/article/details/88764558

有时间还是要研究一下Oracle的高级查询

将查询出来的数据按照一个字段分组且排序过程中,遇到的一些有关group的问题(分组排序应该使用partition by)相关推荐

  1. sqlserver 两个数值字段相加_SQLServer 中多行数据合并成一行数据(一个字段)

    需求:有四行数据,如下: 1.苹果 2.橘子 3.桃子 4.波罗 合并成一个字段:苹果,橘子,桃子,波罗: 需求明确之后,先弄点测试数据,上代码: --创建一个临时表 Create table #te ...

  2. mysql复制一个字段值到另一个字段,MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下...

    点击查看MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下具体信息 答:update b set tel =(select mobile from a where a.id=b.aid) 注 ...

  3. 资深数据科学家教你如何在求职过程中找到心仪工作

    目前进入七月份,算是又一年秋招的开始,实习的中期阶段.很有必要给大家分享一下这篇来自数据科学家Kelly Peng的求职心路历程,她应聘于她所喜爱的Airbnb公司的数据科学岗位,即使你想应聘的不是数 ...

  4. rest_framework03:查询所有/新增数据/删除一个数据/封装Response/序列化与反序列化

    查询所有 1.创建新clase和url,避免与查询一个功能逻辑混乱. 2.增加many=True, book_ser=BookSerializer(books,many=True) urls.py: ...

  5. 给查询出来的数据添加一个标记从1自增序号

    select (@i:=@i+1) as i,user_manage.* from user_manage,(select @i:=0) as it : @i:=@i+1 as i 会生成一个排序的i ...

  6. html中绑定一个字段,四、在html中绑定数据

    一.Mustache 语法 最常见的绑定方式,视图显示数据并及时自动更新,无需手动控制. {{name}} new Vue({ el:"#app", data:{ name:&qu ...

  7. 一个连接蓝牙耳机听歌过程中的耗电问题分析

    最近在项目中遇到了一个连接蓝牙耳机听歌,手机功耗太大的问题,手机的电流大于参考标椎40ma左右. log分析, 出问题的时间点,avrcp一直在更新歌曲的进度,但是是负值,这个值表示的是下一个播放位置 ...

  8. mysql查询语句能否让一个字段不显示出来_天天写order by,你知道Mysql底层如何执行吗?

    作者:不才陈某 前言 在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求,但是你真的理解order by在 Mysql 底层是如何执行的吗?假设你要查询城市是苏州的所有人名字,并且按照姓名 ...

  9. mysql中查询一个字段属于哪一个数据库中的哪一个表的方式

    mysql中查询一个字段具体是属于哪一个数据库的那一张表:用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个 ...

最新文章

  1. bat 域 本机管理员密码_域渗透——Local Administrator Password Solution
  2. 【STM32】 keil软件介绍--工程目标选项配置(上)
  3. Duilib学习笔记《03》— 控件使用
  4. Netty技术细节源码分析-ByteBuf的内存泄漏原因与检测
  5. 生成网站缩略图代码(C#)
  6. 【HDU5698】瞬间移动(杨辉三角+逆元)
  7. Linux下安装zabbix-agent详解
  8. 象棋名手手机版2019最新版_象棋名手
  9. elementUI 日期时间选择器el-date-picker开始时间与结束时间约束
  10. openCV实践项目:拖拽虚拟方块
  11. Snapper 快照管理工具
  12. 二维码怎么做之批量制作二维码
  13. 各类型PPT免费模板,无需编辑直接套用即可!
  14. 小爱同学上线win10商店
  15. Android-在app内安装apk
  16. C Primer Plus 第6版 中文版 勘误表
  17. 10. 大数据:人工智能的基石
  18. 某CCTV摄像头漏洞分析
  19. css漂亮的侧导航栏,CSS3实现的可缩进的侧栏导航菜单
  20. zrender使用问题

热门文章

  1. Codeforces 600E. Lomsat gelral(Dsu on tree学习)
  2. JS键盘KEYCODE值参考
  3. hunnu11543:小明的烦恼——分糖果
  4. Linux命令工具 top详解
  5. WebRequest中的工厂方法模式
  6. FFMPEG开源音视频项目学习汇总
  7. 比亚迪王传福评价小米造车
  8. C++之找不到libboost_system.so.1.76库解决
  9. Ubuntu18.04关闭docker开机自启动
  10. LSB最低有效位算法实现