培训考试项目中,需要实现考试成绩排名:排名参考项为分数(score降序).参加日期(attendtime升序).第几次参加考试(frequency升序):并且,每个用户只保留一条数据(pid). 考试结果存储表格如下: 期望得到的结果为: 解决思路: 去重: 考虑到dintinct针对单个字段比较有效,结合其他字段使用时,效果不理想: 嵌套语句先进行排名,再去除重复的pid数据行:尝试半天没写出来:请教同学,由他给出下一条方案 使用临时表,分语句查询:先排名为temp1表,后在temp1表中删除…
--带参存储过程create or replace procedure testdate(v in number) is i number; begin i:=v; insert into test_day select EN_ID, EN_NAME, ASA_CODE, ASA_NAME, AS, AS_YESTERDAY, SA, SA_YESTERDAY, CA, CA_YESTERDAY, i DATEKEEY from testtable where EN_ID not in (sel…
使用job模拟定时从元数据表中抽取指定数据进入目标表的过程. 一.创建元数据表 --create table test_origianl create table test_original_data( id number(10,2) primary key, name varchar2(200), descCont varchar2(100), dateType char(5) ); 二.元数据表中插入数据 insert into test_original_data values(2.9,'…
转自:http://www.cnblogs.com/fnz0/p/5713102.html 想往某个表中插入几百万条数据做下测试, 原先的想法,直接写个循环10W次随便插入点数据试试吧,好吧,我真的很天真.... DROP PROCEDURE IF EXISTS proc_initData;--如果存在此存储过程则删掉 DELIMITER $ -- 在mysql客户端中分隔符默认是分号(:). CREATE PROCEDURE proc_initData() BEGIN DECLARE i IN…
1.注意事项 使用distinct命令时需要放在查询条件的开头,否则会报错.如果需要查询的项目很多但只针对某一个字段使用distinct的,则可以利用内容拼接的方式来实现. --基本查询 SELECT DISTINCT `name` from users; --显示结果 name 张三 李四 王五 赵六 --多表查询 SELECT DISTINCT name,age FROM users; --显示结果(此处distinct的条件是name和age两个字段,也就是只有两个都重复了才进行筛选.)…
就不写文字描述了,直接用图和sql来表述吧. 这是测试数据,表名为 person 现在,我想按照性别进行分组,也就是字段 sex ,同时能将分组后的姓名全部显示出来. sql 语句如下: SELECT sex, GROUP_CONCAT(name) as name from person GROUP BY sex 搜索结果如下图所示 不指定分隔符的情况下,默认使用的字符是英文 “,” ,如果想使用特定的分隔符,需要在 sql 语句中指定. SELECT sex, GROUP_CONCAT(nam…
最近项目要用Sybase数据库实现分页,第一次使用Sybase数据库,也是第一次使用他的存储过程.2个多小时才调用成功,在此记录: 项目架构:SSM 1.Sybase本身不支持分页操作,需要写存储过程来调用,这是很坑的.存储过程的内容暂且放下, 存储过程名:query_xxx_record_detail 输入输出参数如下:9个输入,5个输出 --input @terminal_no varchar(16), @account_no varchar(16), @begin_time char(14…
执行同样的存储过程,调用同样的参数 在VS 中调用存储过程和传参后,到数据加载需要20秒或更多, 在SQL直接调用则不到一秒,同一个存储过程为什么有这么大的区别呢? 原因:存储过程计划失效的原因 产生原因:存储过程涉及到的对象表结构发生改变或数据量发生大的变化. 解决方案1: 1.重启数据库服务 2.执行exec sp_recompile @objname='存储过程名称' 3.重新执行一次存储过程 解决方案2: 使用 WITH RECOMPILE 每次运行都编译存储过程 对于不经常使用的SQL…
1.java调用存储过程(stored procedures)的HelloWorld程序 有点数据 库基础的人都知道.存储过程(stored procedures)和java没什么关系.它是一段纯粹的数据库sql语言的程序,事先存储在数据库中.没有java程序调用,人家自己独立运行的也 挺好.现在的问题就是,你有一个java程序,你想调用现有的一段存储过程,如何做这件事儿?我们底下的实验就是先向数据库存进去一个名为p4的存储过 程,然后再编一段java程序去调用它. 以下就是我向我的数据库中,插…
前提  本文仅讨论SQL Server查询时, 对于非复合统计信息,也即每个字段的统计信息只包含当前列的数据分布的情况下, 在用多个字段进行组合查询的时候,如何根据统计信息去预估行数的. 利用不同字段的统计信息做数据行数预估的算法原理,以及SQL Server 2012和SQL Server 2014该算法的差异情况, 这里暂时不涉及复合统计信息,暂不涉及统计信息的更新策略及优化相关话题,以及其他SQL Server版本计算方式. 统计信息是什么 简单说就是对某些字段的数据分布的一种描述,让SQ…