<   2011年 03月 ( 2 )   > この月の画像一覧

windiwsブートマネージャーを使ってvistaとUbuntuのデュアルブート

日常使っているPCにDISK500GB 7200rpmを増設。気休めだけど、増設DISKの最外周にパーティション切って、WindowsのPagefile.sysをサイズ固定値で設定。
通常、Ubuntu10.10をインストールするとプライマリDISKのMBRを乗っ取ってしまう。
まあ、それでもいいんだけど、Windows純正のブートマネージャを使用しようとすると、何故かエラーが起こる。
いままでは、CentOSのブートレコードを「/boot」にインストールして先頭512バイトをc:\にコピーしてboot.iniで設定すればいいのだったが。
最後に根拠無しに「/boot」を「ext3」でフォーマットしたた直った。

「Windowsブートメニュー」→Ubuntuを選択するとGrubが起動→めでたくCentOSの起動ができました。
ああ、しんど。
しかし、32bit版CentOSfreeやvmstatで見ると、Windowsよりも有効メモリ量が増えている感じ。なぜだ?
[PR]
by nora1962 | 2011-03-22 04:50

MySQLでグループごとのランキング(最大値からN件取得)

create table xxx
(
nen int,
gaku int
);

insert into xxx values ( 2011,600 );;
insert into xxx values ( 2011,500 );
insert into xxx values ( 2011,450 );
insert into xxx values ( 2011,750 );
insert into xxx values ( 2010,450 );
insert into xxx values ( 2010,540 );
insert into xxx values ( 2010,350 );
insert into xxx values ( 2010,800 );
insert into xxx values ( 2010,700 );

select t.nen, t.gaku
from ( select
@rnk:=if(@prevnen <=> x.nen, if( @prevaku <=> x.gaku, @rnk, @rnk+1), 1 ) as rnk,
@prevnen := x.nen nen,
@prevgaku := x.gaku gaku
from ( select * from xxx order by nen, gaku desc ) as x
cross join ( select @prevnen:=0, @prevgaku:=0, @rnk:=0 ) as dummy ) t
where t.rnk <= 3;

これが結構速い。
ユーザー変数はMySQLの独自機能だし、項目値にnullがある場合はもう一捻りしなければいけないが。
注意点はユーザ変数への代入順序。
今回の場合は@rnkを最初に持ってこないと@prevnen、@pervgakuが上書きされてしまう。
[PR]
by nora1962 | 2011-03-21 11:32 | PC