文章分类 » 未分类

安装Linux系统

闲来无事,准备在笔记本上重新安装一下linux,并在平时学习中多多使用,因为以后的工作中也要较多的使用linux了。

废话不多说,下载了grub,拷贝一个centos版本,先用6.3吧。使用虚拟光驱打开,把isolinux文件夹下的文件拷贝到当前目录。因为之前就准备装Linux,所以分区已经分好了,把整个F盘都格式化成ntfs了,前期工作基本完成。

把下载的grub打开,根据教程,可以只把其中三个文件拷贝到系统盘根目录就可以了,但是因为懒,图个方便,直接把所有文件都解压到系统盘根目录了。修改boot.ini,添加grub centos的引导。OK,重启。

进入系统选择目录,选择自己新添加的centos,进入后选择 from menu.lst already installed,

输入三个命令:kerner (hd0,6)/isolinux/vmlinuz,initrd (hd0,6)/isolinux/initrd.img,boot回车

选择语言,地区,还有起始位置,我是硬盘安装,当然选择硬盘,找到自己安装系统的盘的位置,怪了。。。。  木有进入图形安装界面。。。重启后仍然不行,中间好像加载驱动的时候,有两个文件没有找到。。啥情况?

好了,我要把整个光盘解压出来到这个盘,然后试试。

这种方式进入了界面安装模式,但是在选择使用哪一种方式安装系统的时候,晕乎了,不知道应该选哪一种。选择了replace所有当前linux系统的方式,进入后提示空间不够,估摸着是去xp系统的启动盘里找空余空间去了,不对,就回来重新选。

接着选择了在当前选择的分区中安装系统,好了,可以进入剩下的选项了。然而悲催的是,这种安装方式似乎会重写整个引导盘。中间在格式化当前盘并安装的时候报错了,因为我把要安装的系统选择的是存放安装文件的分区。安装时会格式化,可以又会从这个盘里去读取文件,于是果断悲剧了~~

报错,然后自动重启,然后,就木有然后了。。。 因为现在进入系统是missing operating system.

 

赋闲随感

自离职以来已经让自己闲了将近一个月了,之前是完整的休息了差不多一个多周,然后开始找工作。工作的事情不是像自己想象的那么顺利,中间经历了一些曲折,然而终究有了个结果,得来并不容易。

最开始离职的时候心里抱有的那份梦幻般的自信也受到了不少打击,先是内推受阻,自己玩的时间也有点多,面试的相关内容却没有好好准备。自控能力明显下降,这是自己懒惰的最直接表现。内推的面试回来之后,才有着深深的懊悔,懊恼自己没有好好准备,以为自己脑袋里记住的那点东西足以应付各种面试,足以征服任何自己要去面试的职位。

眼高手低,自恋自大。最近相当一段时间以来自己似乎都是这个状态。直到开始找工作,让今年并不太好的就业形势一点一点打磨着自己,刺激着自己,惊醒着自己,好在终于醒了过来,为时未晚。

自工作以来,工作上的变动并不少,之前的一步一步的变动,现在看来由于自己不少的决定由于信息劣势的客观因素和躁动不安的内心的主观因素,导致自己的决策并不那么好,也许是当时比较好的选择,但同时也造就了今天的困境。

鉴于工作变动较多,自己缺乏稳定宽松的环境用来提高和学习,因此对这次的工作选择格外慎重。因为接下来的这个工作不只是想要换个环境,有个学习的机会,更重要的是自己一个选择行业的机会,而计划中接下来几年内会在同一个公司同一个行业内深入发展,使得这次的选择又格外的重要。

先写到这里,回头继续。

row_number() over()用例及相近函数rank()和dense_rank()的介绍

今天在群里跟一群同学聊天,恍然发现有个同学正在朝dba的方向发展,正好脑子里有个以前的问题想要问一下,问题是:row_number() over()使用partition by的时候,后面条件约束使用什么关键词会导致前面的partition by失效。结果同学会order by,但是木有接触过partition by。。。

早饭都忘了吃了。。

这是个问题啊,虽然那次开发的时候写的语句出现的现象不一定具有典型意义,但是我觉得这个函数用起来很舒服,有很多让我个人很满意的功能,以后要用就不能不弄明白这些问题。同学不能解决,那就顺手在网上找一下看有没有相关的文档能参考一下了。

百度,搜索,关键词 “row_number partition by什么情况下会失效”,查询结果发现,没有针对这个问题的,但是前两项竟然是对row_number over partiton by 做的不错的解释,另外顺带介绍了另外两个具有相同功能但是不同分组排序结果的方法,顿时觉得值得了。现在把这些解释都放上来以做备用。

<

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的

>

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

SQL> SELECT G.*, ROW_NUMBER() OVER(PARTITION BY a ,b ORDER BY c DESC) ROWN
2 from (select ‘1’ a, ‘2’ b, ‘1’ c
3 from dual
4 union all
5 select ‘1’, ‘2’, ‘2’
6 from dual
7 union all
8 select ‘1’, ‘3’, ‘3’
9 from dual
10 union all
11 select ‘1’, ‘3’, ‘4’
12 from dual
13 union all
14 select ‘1’, ‘4’, ‘5’ from dual
15 union all
16 select ‘1’,’3′,’5’from dual) G
17 ;

A B C ROWN
– – – ———-
1 2 2 1
1 2 1 2
1 3 5 1
1 3 4 2
1 3 3 3
1 4 5 1

6 rows selected

与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 .

lag(arg1,arg2,arg3):
arg1是从其他行返回的表达式
arg2是希望检索的当前行分区的偏移量。是一个正的偏移量,时一个往回检索以前的行的数目。
arg3是在arg2表示的数目超出了分组的范围时返回的值。

语句一:

select row_number() over(order by sale/cnt desc) as sort, sale/cnt
from (
select -60 as sale,3 as cnt from dual union
select 24 as sale,6 as cnt from dual union
select 50 as sale,5 as cnt from dual union
select -20 as sale,2 as cnt from dual union
select 40 as sale,8 as cnt from dual);

执行结果:

SORT SALE/CNT
———- ———-
1 10
2 5
3 4
4 -10
5 -20

语句二:查询员工的工资,按部门排序

select ename,sal,row_number() over (partition by deptno order by sal desc) as sal_order from scott.emp;

执行结果:

ENAME SAL SAL_ORDER
——————– ———- ———-
KING 5000 1
CLARK 2450 2
MILLER 1300 3
SCOTT 3000 1
FORD 3000 2
JONES 2975 3
ADAMS 1100 4
SMITH 800 5
BLAKE 2850 1
ALLEN 1600 2
TURNER 1500 3
WARD 1250 4
MARTIN 1250 5
JAMES 950 6

已选择14行。

语句三:查询每个部门的最高工资

select deptno,ename,sal from
(select deptno,ename,sal,row_number() over (partition by deptno order by sal desc) as sal_order
from scott.emp) where sal_order <2;

执行结果:

DEPTNO ENAME SAL
———- ——————– ———-
10 KING 5000
20 SCOTT 3000
30 BLAKE 2850

已选择3行。

语句四:

select deptno,sal,rank() over (partition by deptno order by sal) as rank_order from scott.emp order by deptno;

执行结果:

DEPTNO SAL RANK_ORDER
———- ———- ———-
10 1300 1
10 2450 2
10 5000 3
20 800 1
20 1100 2
20 2975 3
20 3000 4
20 3000 4
30 950 1
30 1250 2
30 1250 2
30 1500 4
30 1600 5
30 2850 6

已选择14行。

语句五:

select deptno,sal,dense_rank() over(partition by deptno order by sal) as dense_rank_order from scott.emp order by deptn;

执行结果:

DEPTNO SAL DENSE_RANK_ORDER
———- ———- —————-
10 1300 1
10 2450 2
10 5000 3
20 800 1
20 1100 2
20 2975 3
20 3000 4
20 3000 4
30 950 1
30 1250 2
30 1250 2
30 1500 3
30 1600 4
30 2850 5

已选择14行。

语句六:

select deptno,ename,sal,lag(ename,1,null) over(partition by deptno order by ename) as lag_ from scott.emp order by deptno;

执行结果:

DEPTNO ENAME SAL LAG_
———- ——————– ———- ——————–
10 CLARK 2450
10 KING 5000 CLARK
10 MILLER 1300 KING
20 ADAMS 1100
20 FORD 3000 ADAMS
20 JONES 2975 FORD
20 SCOTT 3000 JONES
20 SMITH 800 SCOTT
30 ALLEN 1600
30 BLAKE 2850 ALLEN
30 JAMES 950 BLAKE
30 MARTIN 1250 JAMES
30 TURNER 1500 MARTIN
30 WARD 1250 TURNER

以上用例和详细介绍来自《http://www.blogjava.net/kxbin/articles/360195.html》