Wednesday, November 05, 2008

oracle 分組累加

今天看到論壇中有關於Oracle實現累加功能的問題,為瞭解決疑問,下面為在Oracle中實現累加的2種方法.



============================Question================================



SQL> select * from emp;



EMPID EMPNAME SALARY DEPTID
---------- -------------------- ---------- ----------
1 Xie_Feng 8000 1
2 mantisXF 3000 1
3 Roger 6000 1
4 Tony 2500 1
5 Ning 3800 1
6 Sandip 7000 2
7 Akanksha 5500 2
8 Subhash 4800 2



8 rows selected



SQL> select * from dept;



DEPTID DEPTNAME
---------- --------------------
1 DWH
2 BODI

SQL>



請問如何實現salary工資的累加?謝謝.



=========================Resolution_1=====================================



Analysis: 用SUM分析函數實現





如果需要按照Dept部門分組的話:



SQL> SELECT D.DEPTID,
2 D.DEPTNAME,
3 SUM(E.SALARY) OVER(PARTITION BY D.DEPTID ORDER BY D.DEPTID, E.EMPID) AS ACCUMULATE_SALARY_GROUP_DEPT
4 FROM EMP E, DEPT D
5 WHERE E.DEPTID = D.DEPTID;



DEPTID DEPTNAME ACCUMULATE_SALARY_GROUP_DEPT
---------- -------------------- ----------------------------
1 DWH 8000
1 DWH 11000
1 DWH 17000
1 DWH 19500
1 DWH 23300
2 BODI 7000
2 BODI 12500
2 BODI 17300



8 rows selected




如果不需要按照Dept部門分組的話, 也就是直接累加所有的Salary工資:



SQL> SELECT E.EMPID,
2 E.EMPNAME,
3 E.DEPTID,
4 SUM(E.SALARY) OVER(ORDER BY E.EMPID) AS ACCUMULATE_SALARY_GROUP_DEPT
5 FROM EMP E;



EMPID EMPNAME DEPTID ACCUMULATE_SALARY_GROUP_DEPT
---------- -------------------- ---------- ----------------------------
1 Xie_Feng 1 8000
2 mantisXF 1 11000
3 Roger 1 17000
4 Tony 1 19500
5 Ning 1 23300
6 Sandip 2 30300
7 Akanksha 2 35800
8 Subhash 2 40600



8 rows selected



=========================Resolution_2=====================================



Analysis: 用SUM+GROUP BY實現





一樣,如果需要按照Dept部門分組的話:



SQL> SELECT E1.EMPID, E1.EMPNAME, E2.DEPTID, SUM(E2.SALARY)
2 FROM EMP E1, EMP E2
3 WHERE E1.DEPTID = E2.DEPTID
4 AND E1.EMPID >= E2.EMPID
5 GROUP BY E1.EMPID, E1.EMPNAME, E2.DEPTID;



EMPID EMPNAME DEPTID SUM(E2.SALARY)
---------- -------------------- ---------- --------------
1 Xie_Feng 1 8000
2 mantisXF 1 11000
3 Roger 1 17000
4 Tony 1 19500
5 Ning 1 23300
6 Sandip 2 7000
7 Akanksha 2 12500
8 Subhash 2 17300



8 rows selected



一樣同上,如果不需要按照Dept部門分組的話, 也就是直接累加所有的Salary工資:



SQL> SELECT E1.EMPID, E1.EMPNAME, SUM(E2.SALARY)
2 FROM EMP E1, EMP E2
3 WHERE E1.EMPID >= E2.EMPID
4 GROUP BY E1.EMPID, E1.EMPNAME;



EMPID EMPNAME SUM(E2.SALARY)
---------- -------------------- --------------
1 Xie_Feng 8000
2 mantisXF 11000
3 Roger 17000
4 Tony 19500
5 Ning 23300
6 Sandip 30300
7 Akanksha 35800
8 Subhash 40600



8 rows selected



Summary: 總共兩種實現方法,單從效率來說如果你的表數據很多的話,用SUM分析函數的方式更好一些.當然這也不是絕對的.

Sunday, November 02, 2008

秋天

大抵是秋天的到來,人也變得多愁善感了起來,看著淡黃的天空,漸落的楓紅,是否曾經在葉落前,未好好的把握那短暫的時刻,人說,當你看見值得珍惜的人,就因伸出雙手好好的抓緊,不讓他消失在你的生命中,但人們總是抓不住那瞬間的悸動,卻只有留下感嘆。

Saturday, November 01, 2008

惡魔城 : 被奪走的刻印 支線任務詳解

惡魔城 : 被奪走的刻印 支線任務詳解

日:悪魔城ドラキュラ-奪われた刻印

英:Castlevania: Order of Ecclesia

中:惡魔城 : 聖教密令(=_=””真想知道這是誰翻譯的)

台:惡魔城 : 被奪走的刻印

底下的物品,日文=英文=中文,有些不知道怎麼翻譯的,就寫英文了XD

人物(類別)

要求

方法

報酬

アヴラム(藥品)

Abram

蒐集【セ-=sage=鼠趜草或江蘇草】

到處都有

商店藥品增加

蒐集【カモミ=chamomile=甘菊】【ヘンル=rue=芸香】

到處都有

商店藥品增加(解毒,解詛咒)

蒐集【セ-=sage=鼠趜草】和【マンドラゴラの根=Mandragora Root =曼陀羅花根

根會在64號怪物掉

商店藥品增加(High potion=高級藥水)

蒐集【セ-=sage=鼠趜草】和【にんぎょの肉= merman meat=雄人魚肉

45號怪物掉

(45號怪物掉) 商店藥品增加(Super potion=超神水??)

ラ(首飾)

【ラピス.ラズリ=Lapis Lazuli=天青石

到處都有

商店飾品增加

【ルビ—=Ruby=紅寶石】【サファィア=Sapphire=藍寶石】【エメラリド=Emerald=綠寶石

到處都有, 惡魔城內的木箱子都會出現

商店飾品增加

【ダイヤ=Diamond=鑽石】【オニキス=Onyx=縞瑪瑙

/濕地/惡魔城等的稀有寶箱裡

商店飾品增加

【アレキサンドライト=Alexandrite=紫翠玉

修煉場/大鐘乳洞稀有寶箱

頭飾 [Royal Crown]

オイゲン(防具)

Eugen

給他3個【てつのこう石=Iron Ore=鐵礦石】

到處都有

商店防具增加(Iron 系列),2400G

給他3個【ぎんのこう石=Silver Ore=銀礦石】

到處都有

商店防具增加(Silver 系列),3600G

給他3個【きんのこう石=Gold Ore=金礦石】

惡魔城稀有寶箱 / 大鐘乳洞普通寶箱) / (106/107號怪物掉

商店防具增加(Gold 系列),7200G

イオン(食物)

Aeon

給他 【しお=Salt=鹽】

17/19/22號怪物掉

商店食物增加, Corn Soup=玉米濃湯

給他 【キラ-フィッシユの肉=Raw Killer Fish=生的食人魚】

21號怪物掉

商店食物增加, Killer Fish BBQ=烤食人魚à不知道巴西是不是真的有這道菜

給他 【うまい肉=Tasty Meat=美味的肉】

巖礁稀有寶箱

商店食物增加, Thick Steak=厚片牛排^^”有機會可以去台塑牛排吃一下,可以吃到撐。

マルセル(錢)

Marcel

得到【Camera,幫拍Cave Troll

ティメオ山脈87號怪物

商店書刊增加, 6000G

幫拍Jersey Devil

アルギラ濕地65號怪物

商店書刊增加, 8000G

幫拍Yeti

ティメオ山脈59號怪物

商店書刊增加, 12000G

ゲオルゲ(音樂)

George

給他 【うまの毛=Horse Hair=馬毛】

29號怪物掉

商店音樂增加

得到【ちくおんき=phonograph=錄音機】

去給【バンシ=Banshee=報凶女妖】錄音

5號怪物的音
PS: Banshee
使用特技的時候打開錄音機.

商店音樂增加

給他 【Black Ink=墨水】 和 【Eagle Feather=鷹毛】

20號怪物掉墨,63號怪物掉羽毛

商店音樂增加

セルヅユ(糖果)

Serge

陪他玩捉迷藏

他就藏在村中某個木桶裡

Red Drops=紅糖球

裝上R系印【Fidelis Nocuta,

把貓頭鷹召喚

帶【フクロウ】使魔貓頭鷹找他談話

Blue Drops=藍糖球

按照他的提示摸黑找到他

Green Drops=綠糖球

アナ

Anna

幫她找貓【トム=Tom

在トゥリスティス垰左邊的某棵樹頂

Black Drops=黑糖球

抓老鼠給她的貓.

就在カリドゥス海峽地圖左下的沉船裡

Heart Earrings=心型耳環

給她 【クリソベリル=Chrysoberyl=金綠石】 然後去找Laura,把寶石做成【Cat Collar=貓項圈】

2個任務好了之後去找首飾女會給你貓項圈,然後回去交差

Ribbon=緞帶

モニカ(裙子)

Monica

給她 5個 【もめん糸=Cotton Thread=棉線】

到處都有

商店衣服增加, Cotton Dress=棉系衣物

給她 5個 【きぬ糸=Silk Thread=絲線】

到處都有

商店衣服增加, Silk Dress=絲系衣物

給她 5個 【カッミヤ糸=Cashmere Thread=羊絨線

70號怪物掉

商店衣服增加, Party Dress=派對系衣物

イリナ(食物)

Irina

打倒30只【ブラッククロウ=Black Crow=鳥鴉】

在ティメオ山脈的24號怪物

Mocha Éclair=摩卡泡芙

打倒10只【ウルフ=Werewolf=狼人

在ォビリビォの丘的62號怪物

Tart Tatin=妲丹蘋果塔

打倒【キョンツ—=Jiang Shi=殭屍】

在大鐘乳洞的104號怪物

Winged Boots

ダニエラ(帽子)

Daniela

得到【スケッチブック=Sketch Book=速描書】

去大燈塔頂層使用Sketch Book

Grabo Hat

去トゥリスティス峽 = Tristis Pass的瀑布前使用【Sketch Book

Treasure Hat

Oblivion Ridge的教堂前使用【Sketch Book

ォビリビォの丘最後一個版面的十字架那裡

Dowsing Hat

全部完成之後找神父對話,拿到マストリング=master ring =大師之戒,作用是得到的熟練度上升!