over开窗函数的用法
select row_number() over(partition by deptid order by salary) my_rank ,deptid,USERID,salary from tsaler;
public List<Map> getInstitutionsrela(String companycode) {
Map map = new HashMap();
String type= ""+ChangeLog.TYPE_CCZT.getEnumItemValue()+","+ChangeLog.TYPE_MBQY.getEnumItemValue()+","+ChangeLog.TYPE_ZXAP.getEnumItemValue()+","+ChangeLog.TYPE_DLJDR.getEnumItemValue()+"," +
""+ChangeLog.TYPE_XPJG.getEnumItemValue()+","+ChangeLog.TYPE_FLJG.getEnumItemValue()+","+ChangeLog.TYPE_SJJG.getEnumItemValue()+","+ChangeLog.TYPE_GWJG.getEnumItemValue()+"," +
""+ChangeLog.TYPE_TGR.getEnumItemValue()+","+ChangeLog.TYPE_XTJG.getEnumItemValue()+"";
StringBuilder sql = new StringBuilder();
sql.append("select p.objid as productid,\n" +
" p1.objid as instiid,\n" +
" p.name as productname,\n" +
" decode( p3.name,null,p1.name,p3.name ) instiname , \n" +
" decode(p.isend,1,'已到期','未到期') as isendname,\n" +
" nvl(p.nowamount,0) nowamount,\n" +
" p4.name as typename \n" +
"from pm_product p\n" +
"inner join (\n" +
" select c1.pmid,d1.type,e1.objid,e1.name,e1.parentinstitution,row_number() over(partition by c1.pmid,d1.type,e1.objid order by e1.objid ) pinum " +
" from("+Institutions.getQuerySql("objid","companycode","sourcedb","parentinstitution","name")+") e1\n" +
" left join ("+YsInstitutionsRela.getQuerySql("institutionsid","changelogid","removetag","type","sourcedb")+") d1\n" +
" on e1.objid = d1.institutionsid and e1.sourcedb = d1.sourcedb\n" +
" left join ("+YsChangeLog.getQuerySql("pmid","objid","datastatus","sourcedb")+") c1 \n" +
" on d1.changelogid = c1.objid and c1.sourcedb = d1.sourcedb and d1.removetag = 0\n" +
" where c1.datastatus = 0 \n" );
QueryUtils.build("=","e1.companycode",companycode,sql,map);
QueryUtils.buildIn("d1.type",type.split(","),sql,map);
sql.append(")p1 on p1.pmid = p.sourceid and p1.pinum=1\n" +
"left join sirm_entitysetting p3 on p3.sourceid = p1.objid and p3.value = p1.parentinstitution " +
"and p3.sourceentity = 'PMYSINSTITUTIONSRELA'and p3.name = 'parentInstitution' \n" +
"left join sirm_enum p4 \n" +
"on p1.type=p4.value \n" +
"and p4.catalog='PROJECT'and p4.type='insttype'\n" +
"where p.removetag = 0 \n" +
"and p.currentpool = 1 order by p.isend, p.nowamount desc\n");
IMetaDBQuery query = getMetaDBContext().createSqlQuery(sql.toString());
query.setParameters(map);
List<Map> list = query.getResult();
return list;
}
over开窗函数的用法的更多相关文章
- 开窗函数Over用法
比如我们有这个表: 销售记录表 日期 姓名 产品 销售额 201601 A 电脑 12560 201601 A 手机 6501 201601 A 平板 8510 201602 A 手机 1560 20 ...
- oracle 高级用法, DECODE 排序, OVER(PARTITION BY X ORDER BY Y DESC) 开窗函数
场景 01 (IN 语句 排序 decode() 函数): 1,我们在查询中会经常使用这样的用法, select * from table_name t where t.id in (1, 3, 7, ...
- SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数
Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下: ...
- sql server ,OVER(PARTITION BY)函数用法,开窗函数,over子句,over开窗函数
https://technet.microsoft.com/zh-cn/library/ms189461(v=sql.105).aspx https://social.msdn.microsoft.c ...
- (MariaDB)开窗函数用法
本文目录: 1.1 窗口和开窗函数简介 1.2 OVER()语法和执行位置 1.3 row_number()对分区排名 1.4 rank()和dense_rank() 1.5 percent_rank ...
- sqlserver开窗函数在财务对账中的用法
曾几何时发现开窗函数在财务对账总特别好用.但是每次可能很久没用,逻辑都要重头来过.特此留一份完整的思考逻辑待日后参考. 以下是数据源: 从上面的数据可以看到通过C列,那么只需要两个条件即可获得已经用对 ...
- 开窗函数 First_Value 和 Last_Value
在Sql server 2012里面,开窗函数丰富了许多,其中带出了2个新的函数 First_Value 和 Last Value .现在来介绍一下这2个函数的应用场景. 首先分析一下First_Va ...
- Oracle开窗函数 over()(转)
copy文链接:http://blog.csdn.net/yjjm1990/article/details/7524167#,http://www.2cto.com/database/201402/2 ...
- SQL SERVER:开窗函数 SUM() OVER() 数据统计中一例使用
由于前一段时间胃痛,导致博客园博客都停更了一个月左右.近几天,胃病终于稍微有所好转,决定重新写博文. 前几天,有个朋友刚好问到本人有关 SQL 语句,大致是原表有两列,分别为月份.月份销售额,而需要一 ...
随机推荐
- 【PIC单片机】MPLAB X IDE快速入门指南
引言:近期由于项目实践需要,开始动手学习相关硬件知识.从PIC单片机入手. 单片机学习核心要点:查数据手册 配置寄存器 一.基于MPLAB X IDE配置位设置 MPLAB X IDE和MPLAB I ...
- 单例模式(C++)
#include <iostream> #include <string> using namespace std; class singleton { private: si ...
- ng-repeat和ng-options区别
ng-repeat ="x in XXX" ng-options="x.*** for x in XXX“ ng-repeat 写法 <select> < ...
- win10安装mxnet cuda9.0-gpu版
类似于上一篇文章 Anaconda3.6 python3.6.5 cuda9.0+ cudnn7.0 安装MXNet 1.设置清华源 conda config --prepend cha ...
- Win+Tab键实现自定义程序列表间的窗口切换
程序是用AutoHotkey语言写的, 说明: 以自己使用频率的顺序在ExeList自定义的程序间切换 切换可以以所有窗口切换,也可以按程序组切换(比如在word窗口间切换) 程序组可以分别定义排除的 ...
- day3-基础 列表,元组,字典,模块
1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 Country = ['China','England','America'] 通过下标访问列 ...
- 实验,暂停oracle后台进程
有时出于测试需求,需要暂停oracle的某些后台进程,此时以暂停lgwr进程为例 使用sysdba连接到数据库查询到LGWR进程的PID:SQL> select prc.pid from v$b ...
- gridview导出exe处理时遇到RegisterForEventValidation can only be called during Render();错误
如题,今天在利用GridView作execl导出时,遇到RegisterForEventValidation can only be called during Render();问题.根据网上找到的 ...
- python+pymssql+selenium 获取短信验证码登录(实战练习)
登录页面输入手机号, 获取短信验证码(验证码有10分钟有效期) 1 连接sql server数据库,获取10分钟之内的有效短信验证码 2 页面输入手机号,并获取验证码.若存在有效验证码则输入验证码,若 ...
- Android(java)学习笔记15:匿名内部类实现多线程
1. 使用匿名内部类实现多线程 二话不说,首先利用代码体现出来,给大家直观的感觉: package cn.itcast_11; /* 4 * 匿名内部类的格式: 5 * new 类名或者接口名() { ...