一、简介 玩过几个月的基金,所以今天闲着没事看能不能编程实现-从采集基金数据然后进行分析 这里以白酒为例,相信玩过基金的人都知道,白酒这个基金上过几次热搜,在基金排行榜也是无人不知,所以选择了白酒为例(.../mutiy.png") plt.show() 效果图1 [format,png] 分析: 通过上面的条形图可知,最近几个月的月末值都大于月初值,说明这几个月都是属于盈利状态,尤其是2020-12...而2020-8月是亏损最大的,从整体上来看,整年的月份整合下来,整体还是盈利的。...2019-7月是波动最小的一个月,2020-7月是波动最大的一个月,都是7月,哈哈哈,真巧。...4、总结 以上的分析是以白酒为例(代号161725),通过改变代号可以通用分析其他的基金。 通过改变size可以分析几个月,近一年,近几年的基金数据。
key 的格式为 user:sign:userid:yyyyMM,value 则采用长度为4个字节(32位)的位图(最大月份只有31天)。位图的每一位代表一天的签到,1表示已签,0表示未签。...与传统数据库存储空间对比: 例如 user:sign:98:202212 表示用户 id=98 的用户在2022年12月的签到记录。...Bitmaps支持的最大位数是232位。...(SETBIT) 返回用户连续签到次数(BITFIELD key GET [u/i] type offset value, 获取从用户从当前日期开始到1号的所有签到状态,然后进行位移操作,获取连续签到天数...查询当月签到总天数为5天: 获取用户签到明细情况 获取用户某月签到情况,默认当前月,返回当前月的所有日期以及该日期的签到情况 签到控制层 SignController /** *
题目一 表mall_rate中记录了不同商户的费率变化信息,要求按照时间轴顺序,取出费率发生了状态变化的数据行。表及相关数据如下: ? ?...解题思路: lag或lead函数可以将上一行或下一行的字段内容获取到本行,这样便可以进行某些字段是否发生变化的比较,从而进行状态是否变化的比较,有些题目中会出现一些如“连续记录”,“沿时间轴”,“查询*...*上次记录的时间”,“查询**前n次记录的时间”等字眼,这些关键字预示着可能会需要用到lag或lead函数去获取上n行或下n行字段的内容到本行,进行数据选取或比较。...知识点归纳: LAG(col,n,default)用于统计窗口内往上第n行值,第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为null时,取默认值,如不指定...解题思路: 排序,取前20%。以前我有过一种操作是先使用窗口函数中的row_number()进行排序,搞一个rank,然后取最大rank的20%作为限制条件,取到前20%。
一组值中的最大、 least一组值中的最大、 add_months在一个日期上加上或减去指定月份、 last_day返回指定月份的最后一天的日期、 next_day返回下一个指定日期的第一天、...方差,忽略null 6. rowin是存储每条记录的实际物理地址,对记录的访问是基于rowid的,这是存取表中数据的最快的方法。...] 删除子记录时主记录相应值为null constraint emp1_foreign foreign key(deptno) references dept1(deptno) [on delete...count:集合中的元素个数 delete:删除集合中所有元素 delete(x):删除下标为x的元素 delete(x,y):删除下标从x到y的元素 extend:在集合末尾添加一个元素...drop:删除一个数据库对象时 start:打开数据库时触发触发器,在事件后触发 shutdown:关闭数据库时触发触发器,在事件前触发 logon:当一个会话建立时触发,事件前触发 logoff
连续问题的万能模板 在《拼多多面试题:如何找出连续出现N次的内容?》里讲过遇到“连续问题”如何解决,并送出了一个万能模板,模板使用的是窗口函数解决连续问题。 image.png 2....窗口函数 窗口函数lead使用方法: image.png 默认值是指:当向上N行或者向下N行值时,如果已经超出了表行和列的范围时,会将这个默认值作为函数的返回值,若没有指定默认值,则返回Null。...窗口函数lead可以获取每个字段的后面的第n个值,并生成新的一列。 而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...我们可以先用窗口函数lead获取“用户当月下一个登陆日期”: image.png image.png 当“日期”是该用户在当月最后一天登陆时,记录为“当月最后登陆日期”,如果不进行设置,将会返回Null...image.png image.png “上一个登陆顺序”为Null时,用0代替(使用coalesce函数),那么“每个月登陆顺序”减去“上一个登陆顺序”就是本次连续登陆天数。 4.
连续问题的万能模板 我在《拼多多面试题:如何找出连续出现N次的内容?》里讲过遇到“连续问题”如何解决,并送出了一个万能模板,模板使用的是窗口函数解决连续问题。...窗口函数lead可以获取每个字段的后面的第n个值,并生成新的一列。 而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...') over(partition by month(日期), 用户id order by 日期) as 用户当月下一个登陆日期 from 用户登陆记录表; 当“日期”是该用户在当月最后一天登陆时,记录为...“当月最后登陆日期”,如果不进行设置,将会返回Null,不利于理解。...”为Null时,用0代替(使用coalesce函数),那么“每个月登陆顺序”减去“上一个登陆顺序”就是本次连续登陆天数。
执行下面的sql前: select id,ltrim(ENAME,'z') as ENAME from Test6 ?...不管如何输入都这样 9i开始,默认的日期格式是:DD-MON-RR,之前是DD-MON-YY RR 和YY 都是世纪后的两位,但有区别 ORACLE的有效日期范围是:公元前年月日-年月日 select...例:当前年:,--表示的是年 2、months_between(x,y) 两个日期之间相差的月数 计算Test6表中的用户到目前位置,成为会员已经几个月了(注册即成为会员) select months_between...vi、获取当前时间的日(当月的第几日) select TO_CHAR(sysdate,'dd') from dual ?...vvi、获取当前时间的时(24小时制) select TO_CHAR(sysdate,'hh24') from dual ?
2, 变量带取值范围,后面接分号 3, 在判断语句前最好先用count(*)函数判断是否存在该条操作记录 4, 用select 。。。into。。。...因为在Oracle 中本是没有数组的概念的,数组其实就是一张 -- 表(Table), 每个数组元素就是表中的一个记录,所以遍历数组时就相当于从表中的第一条记录开始遍历 for i in 1.....中本是没有数组的概念的,数组其实就是一张表(Table), 每个数组元素就是表中的一个记录。 ...使用数组时,用户可以使用Oracle 已经定义好的数组类型,或可根据自己的需要定义数组类型。 ...游标的使用 Oracle 中Cursor 是非常有用的,用于遍历临时表中的查询结果。
UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件; 如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验; 值N超过定义的长度会出错...怎么获取有哪些用户在使用数据库 select username from v$session; 17. 数据表中的字段最大数是多少? 表或视图中的最大列数为 1000 18....在oracle table中如何抓取memo类型字段为空的数据记录? ...设置方法:把这个变量的值设置为这个系统上的所有oracle的实例的init.ora中的最大的那个processes的那个值加10。 ...如何搜索出前n条记录? select * from employee where rownum 102. 如何知道机器上的oracle支持多少并发用户数?
因为在Oracle 中本是没有数组的概念的,数组其实就是一张 — 表(Table), 每个数组元素就是表中的一个记录,所以遍历数组时就相当于从表中的第一条记录开始遍历 for i in 1..varArray.count...中本是没有数组的概念的,数组其实就是一张表(Table), 每个数组元素就是表中的一个记录。...使用数组时,用户可以使用Oracle 已经定义好的数组类型,或可根据自己的需要定义数组类型。...游标的使用 Oracle 中Cursor 是非常有用的,用于遍历临时表中的查询结果。...,parctice,comment 通过存储过程自动计算出每位学生的总成绩和平均成绩,同时,如果学生在课外课程中获得的评价为A ,就在总成绩上加20 分。
模式的定义 如何实现灵活的奖金计算?...代码: /** * 在内存中模拟数据库,准备点测试数据,好计算奖金 */public class TempDB { private TempDB(){} /** * 记录每个人的月度销售额...double money = super.calcPrize(user, begin, end); //2:然后计算当月业务奖金,按照人员和时间去获取当月的业务额,然后再乘以...研磨设计模式 1)装饰模式的功能:实现动态地为对象添加功能,一层一层的包装 2)类功能的扩展:1. 继承 2.对象的组合 3)Java中的装饰模式:IO流 ?...:"+user+"于"+df.format(new Date())+"时保存了一条销售记录,客户是"+customer+",购买记录是"+saleModel); return f;
-- LAST_DAY(d) - 返回当月最后一天 SELECT SYSDATE, LAST_DAY(SYSDATE) FROM DUAL; ROUND(d[,fmt]) 与 ROUND 对应的函数时...如果 fmt 为“MONTH”则舍入到某月的 1 日,即前月舍去,后半月作为下一月。 默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第二天。...UNION 用来求两个集合的并集,并去掉重复值 UNION ALL 用来求两个集合的并集 INTERSECT 用来求两个集合的交集,并去掉重复值 MINUS 用来求第一个集合中存在,而第二个集合中不存在的记录...中的greatest 函数和 least函数示例代码 求多列的最大值,oracle中的 greatest 函数; 求多列的最小值,oracle中的 least 函数。...在比较时,OracIe会自动按表达式的数据类型进行比较,以expr_1的数据类型为准。 四舍五入 Oracle 提供了以下四个函数用来做四舍五入。
具体功能: 1、记录最近一次的签到时间 2、每次签到都会添加15积分 3、有连续签到的记录 CREATE TABLE `sp_sign` ( `id` int(11) NOT NULL AUTO_INCREMENT...DEFAULT '0' COMMENT '当月签到给的积分', `one` varchar(255) DEFAULT NULL COMMENT '当月签到的日期,用“,”隔开', `two` varchar...上次签到日期与本次签到日期月份不一样 { $oldtime = $times[0]['times']; $onetime=date("Y-m-d H:i:s", strtotime("-1 month")); //获取前...1个月的时间,获取格式为2016-12-30 13:26:13 $twotime=date("Y-m-d H:i:s", strtotime("-2 month")); //获取前2个月的时间 $threetime...=date("Y-m-d H:i:s", strtotime("-3 month")); //获取前3个月的时间 $rs = Db::name('sign')- where('userid',$userid
,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。...,当中断会话时ORACLE将截断表。...SGA是Oracle为一个实例分配的一组共享内存缓冲区,它包含该实例的数据和控制信息。SGA在实例启动时被自动分配,当实例关闭时被收回。数据库的所有数据操作都要通过SGA来进行。...SGA中内存根据存放信息的不同,可以分为如下几个区域: a、Buffer Cache:存放数据库中数据库块的拷贝。它是由一组缓冲块所组成,这些缓冲块为所有与该实例相链接的用户进程所共享。...b、日志缓冲区Redo Log Buffer:存放数据操作的更改信息。它们以日志项(redo entry)的形式存放在日志缓冲区中。当需要进行数据库恢复时,日志项用于重构或回滚对数据库所做的变更。
格式化日期时,有一定的容错性,如下面的 SQL 返回正确的结果。... 显示值:1 24小时格式下时间范围为: 0:00:00 - 23:59:59.... 12小时格式下时间范围为: 1:00:00...获取时间的时 select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分 select to_char(sysdate...时间为null的用法 select id, active_date from table1 UNION select 1, TO_DATE(null...from dual; TO_CHAR(SYSDATE,'SS') --------------------- 13 2.19 FF[1-9] 返回毫秒数,可指定长度1-9,默认6位(Oracle中date
redis中字符串限制最大为512M,所以位图中最大可容纳2^32(42亿)个不同的位。 可以将位图看做是一个bit数组,数组的下标就是偏移量 它的优点:内存开销小,效率高且操作简单。...bitpos指令:bittops key bit [start] [end] 获取位图中第一个值为bit的二进制位的位置;时间复杂度: O(n),其中n为位图包含的二进制位数量。...3、位数组会自动伸展扩充,offet偏移量设置超出现现有的内容范围,为确保value值在指定偏移量上,会通过扩容,空白位置用0填充补上, 4、offet参数值必须大于或者等于0,小于2^32(字符串最大值是...3、不能过度的去依赖缓存,一旦缓存出问题或者崩盘,数据丢失都是一个大问题,用户的反馈投诉极具增加 4、用户存在质疑时,可以快速通过落地数据进行排查问题 5、缓存出现问题时,可以通过数据库的记录进行数据回源...④ 获取用户当月打卡总数 /** * @Desc 获取用户当月打卡总数 * @param string $date * @return int */ public function getSumSignCount
一个物化视图就是主库在某一个时间点上的复制,可以理解为是这个时间点上的 Snapshot。当主库的数据持续更新时,物化视图的更新则是要通过独立的批量更新完成,称之为 refreshes。...Oracle 基于物化视图,就可以完成增量数据的获取,从而满足阿里的数据在线迁移。将这个技术问题泛化一下,想做到在线增量迁移需要有哪些特性?...我们得到如下结论(针对源数据库): 增量变化:支持增量获得增量数据库变化 延迟:获取变化数据这个动作耗时需要尽可能低 幂等一致性:变化数据的消费应当做到幂等,即不管目标数据库已有数据什么状态,都可以无差别消费...apple4 可以看到 Change Table 已经如实的记录了我们操作内容,注意 __$operation代表了数据库操作: 1 删除 2 插入 3 更新前数据 4 更新后数据 根据查出来的数据,我们可以重现这段时间数据库的操作...最佳实践 数据库的迁移在去 Windows 中,是最不容得出错的环节。应用是无状态的, 出现问题可以通过回切较快地回滚。但数据库的迁移就需要考虑周到,做好资源准备,发布流程,故障预案处理。
select username from v$session; 17.数据表中的字段最大数是多少? 表或视图中的最大列数为 1000。 18.怎样查得数据库的SID ?...20.unix 下怎么调整数据库的时间? su -root date -u 08010000 21.在ORACLE TABLE中如何抓取MEMO类型栏位为空的资料记录?...是一本sql的使用手册,包括语法、函数等等,oracle官方网站的文档中心有下载。 58.如何查看数据库的状态?...64.如何查出一条记录的最后更新时间? 可以用logminer 察看。 65.如何在PL/SQL中读写文件? UTL_FILE包允许用户通过PL/SQL读写操作系统文件。...设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最 大的那个processes的那个值加10。
在一个银行系统中(一般涉及到钱的问题对并发事务要求是最严格的^_^),会计正在统计当月某地区的个人存款总额,她的这个操作,在后台肯定要产生一条SQL语句,对这一地区的所有用户的存款额作SUM(),我们假设这一操作产生的语句为...下面就看下Oracle是如何实现一致性读的: 当Oracle更新数据块(Data Block Oracle中最小的存储单位)时,会在两个地方记录下这一更新动作。...以上面的例子为例,A在读取到Y帐户时,发现这条记录已经被修改了,于是就从回滚段读取保留的回滚数据,最终就能正确得到T1时刻的正确存款总额了。...我们知道,当Oracle更新数据块时,会在回滚段(UNDO Segment)记录下这一更新动作。...所以,看到后面的Lck位(行级锁数目)为1(因为我们修改了1条记录)。 再看每条记录中的行级锁对应Itl条目lb:都是0x1。即Itl中的第一条。
如何使用Oracle的游标? 1). oracle中的游标分为显示游标和隐式游标 2)....冷备份不足: 1).单独使用时,只能提供到“某一时间点上”的恢复。 2).在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。...解释什么是死锁,如何解决Oracle中的死锁?...可以简单的将视图理解为sql查询语句,视图最大的好处是不占系统空间 2. 一些安全性很高的系统,不会公布系统的表结构,可能会使用视图将一些敏感信息过虑或者重命名后公布结构 3....如事务1在表A行记录#3中有一排它锁,并等待事务2在表A中记录#4中排它锁的释放,而事务2在表A记录行#4中有一排它锁,并等待事务; 1在表A中记录#3中排它锁的释放,事务1与事务2彼此等待,因此就造成了死锁
领取专属 10元无门槛券
手把手带您无忧上云