date函数

Oracle 查询(SELECT)语句(一)

时光怂恿深爱的人放手 提交于 2019-12-08 15:33:42
Ø 简介 本文介绍 Oracle 中查询 (SELECT) 语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习。 首先,我们先来理一下思路,我们知道查询通常包含以下内容: Ø 查询指定的表和列 Ø 根据指定的条件查询,即 WHERE 条件 Ø 查询数据去重,即 DISTINCT 子句 Ø 查询数据聚合,即 COUNT() 、 MAX() 、 MIN() 等 Ø 按条件输出,即 CASE WHEN THEN 子句 Ø 排序 (ORDER BY) Ø 分组 (GROUP BY) 与分组过滤 (HAVING) Ø 多表连接( INNER JOIN 、 LEFT JOIN 等) Ø 子查询( SELECT 子查询、 WHERE 子查询等) Ø 其他 好了,既然知道了有这些查询功能,下面我们就一一突破,准备了以下内容: 1. 准备数据 2. SELECT 语法 3. 基本用法 4. WHERE 条件 5. 聚合查询 6. CASE WHEN THEN 子句 7. 排序 8. 分组与分组过滤 1. 准备数据 1) 创建表结构 CREATE TABLE JNUser ( UserId NUMBER ( 10 ) NOT NULL , Name VARCHAR2 ( 8 ) NOT NULL , Sex NUMBER ( 3 ) NOT

sql中筛选第一条记录【分组排序】

末鹿安然 提交于 2019-12-08 14:49:25
问题描述 我们现在有一张表titles,共有4个字段,分别是emp_no(员工编号),title(职位),from_date(起始时间),to_date(结束时间),记录的是员工在某个时间段内职位名称,因为会存在升职,转岗之类的,里面emp_no可能会对应多个职位,我们现在要取到所有员工最近的职位信息,包括离职员工。 本文介绍两种方法去实现结果: 方法一 嵌套一个group by+max()子查询获取最近的职位信息。 思路 通过对emp_no分组取每个emp_no对应的最大的from_date; SELECT emp_no, max( from_date ) AS max_date FROM titles GROUP BY emp_no 结果如下: 通过查询出来的最大的from_date取筛选最近的的一条职位信息。 SELECT t.emp_no, t.title FROM titles t LEFT JOIN ( SELECT emp_no, max( from_date ) AS max_date FROM titles GROUP BY emp_no ) et ON t.emp_no = et.emp_no AND t.from_date = et.max_date 结果如下: 方法二 通过rank over partition by函数实现,这个目前是Oracle独有的函数

Spark非常实用的窗口函数

强颜欢笑 提交于 2019-12-08 08:17:37
spark 累加历史主要用到了窗口函数,而进行全部统计,则需要用到rollup函数 1 应用场景: 1、我们需要统计用户的总使用时长(累加历史) 2、前台展现页面需要对多个维度进行查询,如:产品、地区等等 3、需要展现的表格头如: 产品、2015-04、2015-05、2015-06 2 原始数据: product_code event_date duration 1438 2016-05-13 165 1438 2016-05-14 595 1438 2016-05-15 105 1629 2016-05-13 12340 1629 2016-05-14 13850 1629 2016-05-15 227 3 业务场景实现 3.1 业务场景1:累加历史: 如数据源所示:我们已经有当天用户的使用时长,我们期望在进行统计的时候,14号能累加13号的,15号能累加14、13号的,以此类推 3.1.1 spark-sql实现 //spark sql 使用窗口函数累加历史数据 sqlContext.sql( """ select pcode,event_date,sum(duration) over (partition by pcode order by event_date asc) as sum_duration from userlogs_date """).show +-----

JS常用函数----持续更新之有空更新

↘锁芯ラ 提交于 2019-12-07 22:19:42
JS常用函数 1.指定日期的七天后日期 2.某日期的后X天–>数组 3.String转日期 4.正则表达式–判断手机号 1.指定日期的七天后日期 function fun_submit (arg) { var date1 = new Date (arg); var date2 = new Date (date1); date2.setDate(time.getDate()+ 7 ); //<-- +7就是后七天的日期,日期可以运算 time=date2.getFullYear()+ "-" +(date2.getMonth()+ 1 )+ "-" +date2.getDate(); alert(time); alert(time.getDate()); } 2.某日期的后X天–>数组(1楼拓展版) xDate=[‘2018-09-01’,’2018-09-08’,’2018-09-15’…] function date (date,day) { //date某个日期开始,day相隔X天 var sdate= new Date (date); var tmp=sdate.getFullYear()+ "-" +(sdate.getMonth()+ 1 )+ "-" +sdate.getDate(); var xDate=[]; //数组存放以date开始(包含)相隔x天的七个数据

js--常用函数库

时光总嘲笑我的痴心妄想 提交于 2019-12-07 22:16:45
学习资源推荐 js--常用函数 安装:npm i sparkle-blink API 字符串常用函数 数组常用函数 其他常用函数 正则表达式 函数库 函数名 作用 trim 去除空格 turnCase 大小写转换-全大写,全小写,首字母大写 parseCase 大小写相互转换 checkPwdStrength 验证密码强度 hexColor 随机16进制颜色 randomCode 指定位数随机码 keywordsCount 关键词统计 caseFormat 短横,下划线与小驼峰的相互转化 dateFormat 时间格式化 reverse 逆序输出 onlyArray 数组去重 flat 数组扁平化 sort 数组排序 bubble_sort 冒泡排序 resort 数组错乱排序 totalArr 数组求和 mergeArr 数组合并 lastItem 获取数组最后一项 preventShake 防抖 throttle 节流 deepCopy 深拷贝 clearWebSite 让网页变得干净–调试时使用 delInvalidprops 去除对象或数组的无效属性 downloadByUrl 根据指定url下载文件 enterEvent 回车事件监听 pastTime 已过时间 isLegalEmail 邮箱校验 isLegalName 中文名校验–(2-6)位

js常用函数整理

家住魔仙堡 提交于 2019-12-07 22:16:24
常用函数 获取十六进制随机颜色 function getRandomColor ( ) { return '#' + ( function ( h ) { return new Array ( 7 - h . length ) . join ( "0" ) + h ; } ) ( ( Math . random ( ) * 0x1000000 << 0 ) . toString ( 16 ) ) ; } getRandomColor ( ) ; //"#272aba" 刷新当前页面 function refreash ( ) { window . location . href = window . location . href ; } 数组中删除一个元素 function removeItem ( arr , item ) { var index = arr . indexOf ( item ) ; if ( index > - 1 ) { arr . splice ( index , 1 ) ; } return arr ; } remove ( [ 1 , 2 , 3 ] , 3 ) ; //[1,2] 判断一个元素是否在一个数组中 function contains ( arr , val ) { return arr . indexOf ( val ) != - 1 ?

js的常用封装函数库之Date操作

耗尽温柔 提交于 2019-12-07 22:14:52
js的常用封装函数库之Date日期的操作 /* * 函数功能:Date */ class DateFn { /** * 格式化时间 * * @param {time} 时间 * @param {cFormat} 格式 * @return {String} 字符串 * * @example formatTime('2018-1-29', '{y}/{m}/{d} {h}:{i}:{s}') // -> 2018/01/29 00:00:00 */ formatTime ( time , cFormat ) { if ( arguments . length === 0 ) return null ; if ( ( time + '' ) . length === 10 ) { time = + time * 1000 } var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' , date ; if ( typeof time === 'object' ) { date = time } else { date = new Date ( time ) } var formatObj = { y : date . getFullYear ( ) , m : date . getMonth ( ) + 1 , d : date .

JavaSE-常用API

扶醉桌前 提交于 2019-12-07 18:20:30
目录 目录 第一章:API概述 第二章:Scanner类 第三章:Random类 第四章:ArrayList类 第五章:String类 第六章:Arrays类 第七章:Math类 第八章:Object类 第九章:Date类 第十章:System类 第十一章:StringBuilder类 第十二章:包装类 目录 第一章:API概述 什么是API? ​ API(Application Programming Interface), 应用程序编程接口 。Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学 习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。 API使用步骤 打开帮助文档。 点击显示,找到索引,看到输入框。 你要找谁?在输入框里输入,然后回车。 看包。java.lang下的类不需要导包,其他需要。 看类的解释和说明。 学习构造方法。 使用成员方法 第二章:Scanner类 Scanner类介绍 一个可以解析基本类型和字符串的简单文本扫描器 使用步骤 导包: import java.util.Scanner; 构造函数: public Scanner(InputStream source) 常用方法: public

Unix系列shell程序编写从入门到精通(下)

落爺英雄遲暮 提交于 2019-12-07 10:21:38
Until语句 While语句中,只要某条件为真,则重复执行循环代码,until语句正好同while相反,该语句使循环代码重复执行,直到遇到某一条件为真才停止。 Until语句的结构如下: until command do command command … … done 可以用until语句替换上面备份程序的while语句,完成同样的功能: until [ $ANS != Y -a $ANS != y ] for 循环 在介绍for循环之前,我们要学个非常有用的unix命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当Shell程 序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求Shell在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在$1后 为$2,在$2后面为$3等。在 shift命令执行前变量$1的值在shift命令执行后就不可用了。 示例如下: #测试shift命令(x_shift.sh) until [ $# -eq 0 ] do echo "第一个参数为: $1 参数个数为: $#" shift done 执行以上程序x_shift.sh: $./x_shift.sh 1 2 3 4 结果显示如下: 第一个参数为: 1 参数个数为: 3 第一个参数为: 2 参数个数为: 2 第一个参数为: 3 参数个数为:

条款31:将文件间的编译依存关系降至最低

蹲街弑〆低调 提交于 2019-12-07 08:01:21
条款31:将文件间的编译依存关系降至最低 (Minimize compilation dependencies between files.) 内容: 在你们的开发团队中,一些有经验的工程师时不时地会教导新手一些基本的编程原则,其中"将接口从实现中 分离"可能是他(她)要你必须牢记原则,因为C++并没有把它做的很好,这只能靠我们在平时的编写代码中注意这 一点了,如果你不小心违背了这一原则,可能招致的后果就是:当你轻微的修改了某个类的实现,注意不是接口的 时候,再次重新BUILD一次你的工程,Oh,My God!很多文件被重新编译和链接了,Build的时间大大超出你的预期, 而这种事情的发生,估计你当时就会只恨编译器的BUILD的速度太慢,效率太低.呵呵.避免陷入这种窘境的一种有 效的方法就是本条款要提出的内容:将文件间的编译依存关系降至最低. 现在假设你写了一个Person类,一般你会这么构思你的代码: #include <string> #include "date.h" #include "address.h" class Person{ public: Person(const std::string& name,const Date& birthday,const Address& addr); std::string name()const; std::string