- 浏览: 796735 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (413)
- 项目 (12)
- 统计分析 (3)
- java (7)
- jquery (15)
- oracle (33)
- 面试题 (8)
- 排序算法 (3)
- 蛇形矩阵算法 (3)
- 字符串 (1)
- ICU分析插件 (1)
- html5 (1)
- Ubuntu (4)
- Linux (4)
- memcache (2)
- myeclipse (3)
- hadoop (18)
- hbase (14)
- hive (7)
- zookeeper (2)
- pig (0)
- mysql (11)
- Redis (8)
- MongoDB (7)
- Cassandra (0)
- Neo4j (0)
- springMVC (3)
- ibatis (1)
- mahout (0)
- Highcharts (1)
- maven (7)
- 生活随笔 (6)
- 存储过程 (4)
- mybatis (3)
- bootstrap (19)
- 工作中遇到的问题 (23)
- node.js (3)
- web前段 (6)
- AngularJS (5)
- GIT (2)
- nginx (5)
- hive,sqoop (1)
- 高并发 (2)
- 算法 (3)
- 工具类 (2)
- ckeditor (1)
- java代码自动生成 (3)
- ueditor (6)
- svn (4)
- easyui (3)
- 数据挖掘 (4)
- ligerUi (1)
- fullcalendar (1)
- 微信公众号开发 (1)
- tomcat (2)
- 面试 (7)
- 数据库性能优化 (2)
- R语言 (3)
- R (6)
- ylcf (39)
- CentOS (13)
- docker (28)
- Spring Boot (10)
- Nexus (1)
- thymeleaf (2)
- nodejs (2)
- swagger (1)
- Jenkins (1)
- SpringCloud (9)
- vue (1)
- springClould问题汇总 (3)
- layui (1)
最新评论
-
greatwqs:
在前置请求页面返回token, 在提交接口中验证token, ...
Spring MVC 用拦截器+token防止重复提交 -
zhukewen_java:
这种方法的缺陷在于如果请求了两个save=true的方法,后面 ...
Spring MVC 用拦截器+token防止重复提交 -
byrgl5:
请问如果重复提交了三次呢?能避免吗?
Spring MVC 用拦截器+token防止重复提交 -
381895649:
是不是有病?
服务器被如下ip攻击,如何根据ip超找攻击来源 -
greatwqs:
最棒的10款MySQL管理工具
SELECT b, c, d,SUM(d) OVER(PARTITION BY b,c ORDER BY d) e FROM a
今天看到一个老兄的问题,
大概如下: 查询出部门的最低工资的userid 号 表结构: D号 工资 部门 userid salary dept 1 2000 1 2 1000 1 3 500 2 4 1000 2 有一个高人给出了一种答案: SELECT MIN (salary) OVER (PARTITION BY dept ) salary, dept FROM ss 运行后得到:
1000 1 1000 1 500 2 500 2 楼主那位老兄一看觉得很高深。大叹真是高人阿~
我也觉得这位老兄实在是高啊。 但我仔细研究一下发现那位老兄对PARTITION BY的用法理解并不深刻。并没有解决楼主的问题。 大家请看我修改后的语句 SELECT userid,salary,dept,MIN (salary) OVER (PARTITION BY dept ) salary FROM ss 运行后的结果:
userid salary dept MIN (salary) OVER (PARTITION BY dept ) 1 2000 1 1000 2 1000 1 1000 3 500 2 500 4 1000 2 500 大家看出端倪了吧。
高深的未必适合。 一下是我给出的答案: SELECT * FROM SS INNER JOIN (SELECT MIN(SALARY) AS SALARY, DEPT FROM SS GROUP BY DEPT) SS2 USING(SALARY,DEPT) 运行后的结果:
salary dept userid 1000 1 2 500 2 3 由此我想到总结一下group by和partition by的用法
group by是对检索结果的保留行进行单纯分组,一般总爱和聚合函数一块用例如AVG(),COUNT(),max(),main()等一块用。 partition by虽然也具有分组功能,但同时也具有其他的功能。 它属于oracle的分析用函数。 借用一个勤快人的数据说明一下: sum() over (PARTITION BY ...) 是一个分析函数。 他执行的效果跟普通的sum ...group by ...不一样,它计算组中表达式的累积和,而不是简单的和。 表a,内容如下: B C D 02 02 1 02 03 2 02 04 3 02 05 4 02 01 5 02 06 6 02 07 7 02 03 5 02 02 12 02 01 2 02 01 23 select b,c,sum(d) e from a group by b,c 得到:
B C E 02 01 30 02 02 13 02 03 7 02 04 3 02 05 4 02 06 6 02 07 7 而使用分析函数得到的结果是:
SELECT b, c, d, SUM(d) OVER(PARTITION BY b,c ORDER BY d) e FROM a B C E 02 01 2 02 01 7 02 01 30 02 02 1 02 02 13 02 03 2 02 03 7 02 04 3 02 05 4 02 06 6 02 07 7 结果不一样,这样看还不是很清楚,我们把d的内容也显示出来就更清楚了:
B C D E 02 01 2 2 d=2,sum(d)=2 02 01 5 7 d=5,sum(d)=7 02 01 23 30 d=23,sum(d)=30 02 02 1 1 c值不同,重新累计 02 02 12 13 02 03 2 2 02 03 5 7 02 04 3 3 02 05 4 4 02 06 6 6 02 07 7 7 |
发表评论
-
oracle jdbc链接SID和Service Name的区别
2018-12-24 09:27 1672application-dev.yml配置文件如下 eur ... -
Oracle批量操作
2018-04-24 15:52 464racle批量插入: Xml代码 & ... -
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201
2018-03-07 10:19 1580Oracle数据库mybatis 插入空值时报错(with ... -
Oracle JDBC driver Maven配置
2018-03-05 13:41 1304问题: maven项目,spri ... -
ibatis结合Oracle的iterate insert批量插入
2018-02-27 13:50 1530ibatis批量插入oracle数据库 <inser ... -
数据库分页大全(oracle利用解析函数row_number高效分页)
2018-02-24 17:26 693最近在转换mysql项目到oracle项目,遇到mysql分 ... -
Mybatis结合Oracle的foreach insert批量插入
2018-02-24 14:17 3410最近在做将mysql数据库项目迁移到oracle数据库项目 ... -
oracle聚合函数汇总
2018-02-24 13:02 1625今天在做项目,讲mysql项目转换为oracle项目的时候, ... -
spring集中druid进行数据库监控
2018-02-11 17:52 1825Druid内置提供了一个StatViewServlet用于 ... -
mysql和oracle数据互相迁移
2018-02-11 15:53 829工作中,项目原本是mysql数据库 后台需要换成oracl ... -
[Navicat] 连接Oracle报错_Cannot load OCI DLL 87
2018-02-11 15:43 1906Navicat可以用来连接各 ... -
oracle批处理开启或者关闭服务
2013-12-16 22:53 997机子上装着Oracle,但并不是很常要用到,所以把原先 ... -
oracle 正则表达式用法
2011-08-05 09:30 1713l 方括号表达示 方括号表达式 ... -
oracle case when 用法总结
2011-08-04 14:27 2950Oracle dbms_job package 用法小结 O ... -
Oracle语句优化30个规则详解
2011-08-04 11:07 2833select tab_name from tables ... -
oracle decode()函数用法总结
2011-08-04 10:06 2967·含义解释: decode(条件 ... -
Oracle中的Union,Union All,Intersect,Minus
2011-08-04 09:09 1136众所周知的几个结果 ... -
oracle executeimmediate用法小解
2011-08-03 09:16 1279EXECUTE IMMEDIATE 代替了以 ... -
oracle merge的用法
2011-08-02 17:53 1094MERGE语句是Oracle9i新增的语法,用来合并UPDAT ... -
Oracle 小知识 总结(一) .
2011-08-02 15:42 21041. 每天的8:00到23:00每隔5分钟执行一个sql语句的 ...
相关推荐
主要介绍了Oracle查询中OVER (PARTITION BY ..)用法,内容和代码大家参考一下。
今天大概弄懂了partition by和group by的区别联系。 1. group by是分组函数,partition by是分析函数(然后像sum()等是聚合函数); 2. 在执行顺序上, 以下是常用sql关键字的优先级 from > where > group by > ...
Oracle Partition分区详细总结.pdf
深入探讨oracle partition的机制与实现
ORACLE数据库中PARTITION的用法[文].pdf
oracle partition table: range partitioned table. list partitioned table; hash partitioned table
Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数(转载),这个命令很实用,对于分析人员经常用到。
partition by 使用说明
how to convert table from non-partition table to partition table in online mode.
partition by关键字是分析性函数的一部分,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,本文给大家介绍SQLServer中Partition By及row_number 函数使用详解,需要的朋友参考下
Oracle 8i Partition.rar
1、 结构:聚合函数()over( partition by 字段1,字段2,字段3 order by 字段 desc/asc range between 数值/date preceding/flowing and 数值/date preceding/flowing) 聚合函数可以是:sum,count,avg,max,min,...
基于ORACLE数据库上的自动创建分区表存储过程。
过滤方法有distinct 获取是整行 重复 但只想过滤2个或2个以上不是所有字段 怎么办? 根据多个字段过滤 比如表:teacher表 id ,name ,sex,idNumber,phone,date; 需求 根据name和idnumber和date过滤重复数据只取...
上传oracle数据库文档 主要讲解oracle分区和索引 提高数据库性能的
SELECT col, AVG(value) OVER(PARTITION BY col ORDER BY col) FROM tmp1 ORDER BY col; 2、SUM ( [ DISTINCT | ALL ] expr ) OVER ( analytic_clause ) 例如: --聚合函数 SELECT col, sum(value) FROM tmp1 ...
Oracle9i通过引入列表分区(List Partition),使得当前共有4种分区数据的方法,文中分别介绍了这四种分区方法:范围分区、Hash分区、复合分区、列表分区。
第五篇 分析函数简述 分析函数的语法结构比较复杂,但多数函数都具有相同的语法...Partition没啥说的,功能强大参数少,主要用于分组,可以理解成select中的group by。不过它跟select语句后跟的group by 子句并不冲突。