キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。
Firebirdユーザコンテキスト変数を使ったdense_rank()
[2009-11-24 Firebirdのユーザコンテキスト変数は、左から右に評価されないようで、以下は単にrownumになっていますorz 近日修正しますので、いましばらくお待ちください]

以前MySQLユーザ変数を使ったdense_rank()を紹介しましたが、
下記はそのFirebird版です。

Firebirdではrdb$set_context()が値ではなく、既存の設定あり(1), なし(0)になってしまうので、
Firebirdの組み込み関数に追加されたdecode()(Oracleと同じ)で、値を返すようにしています。

QL> --Like dense_rank()
SQL> select rdb$set_context('USER_SESSION', 'rnk', 0), rdb$set_context('USER_SESSION', 'preval', null) from rdb$database;

RDB$SET_CONTEXT RDB$SET_CONTEXT
=============== ===============
0 0

SQL> select case when cast(rdb$get_context('USER_SESSION', 'preval') as int) <> sal then cast(rdb$get_context('USER_SESSION', 'rnk') as int)
CON> ELSE decode(rdb$set_context('USER_SESSION', 'rnk', cast(rdb$get_context('USER_SESSION', 'rnk') as int) + 1),1,cast(rdb$get_context('USER_SESSION', 'rnk') as int)) END,
CON> decode(cast(rdb$set_context('USER_SESSION', 'preval', sal) as int), 1, sal,sal) from emp order by sal;

CASE CASE
============ ============
1 800
2 950
3 1100
4 1250
5 1250
6 1300
7 1500
8 1600
9 2450
10 2850
11 2975
12 3000
13 3000
14 5000
| MeijiK | Firebird/InterBase | 12:08 | comments(3) | trackbacks(0) |
dense_rank()ではなくrow_number()になっている気が。
| umitanuki | 2009/11/23 3:11 PM |
あらほんとだw
| MeijiK | 2009/11/24 1:12 AM |
後日やりなおしますm(_ _)m
| MeijiK | 2009/11/24 1:15 AM |









http://blog.kimuradb.com/trackback/821756
 123456
78910111213
14151617181920
21222324252627
28      
<< February 2010 >>
+ RECOMMEND
バッファローコクヨサプライ Arvel ノートPC用ACアダプタ GETPOWER 各社対応75W 白箱仕様 AGP75M
バッファローコクヨサプライ Arvel ノートPC用ACアダプタ GETPOWER 各社対応75W 白箱仕様 AGP75M

国内のノートパソコンの殆どに対応。現在半値でお買い得。
+ RECOMMEND
Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
松信 嘉範
Linux-DB システム構築の新スタンダード。DB Magazine人気連載、待望の書籍化です!!
+ RECOMMEND
MySQL全機能バイブル ~現場で役立つAtoZ~
MySQL全機能バイブル ~現場で役立つAtoZ~
鈴木 啓修
名著「
MySQL全機能リファレンス」はバージョン4.xまでの対応でしたが、今回装いも新たに5.1まで対応しての発売です。
+ RECOMMEND
MySQLデータベース構築バイブル
MySQLデータベース構築バイブル
志村 和彦,松信 嘉範,池田 徹郎
志村さん、松信さん、池田さん、ととにかく濃いこの一冊。構築バイブルというよりHackに近いです。
+ RECOMMEND
Firebird 徹底入門
Firebird 徹底入門

Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
+ RECOMMEND
実践ハイパフォーマンスMySQL 第2版
実践ハイパフォーマンスMySQL 第2版
Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz,Derek J. Balling
待望の日本語版登場!英語版には日々お世話になっていますm(_ _)m
+ RECOMMEND
+ RECOMMEND
厳選!旨い焼鳥焼きとん130店 完全保存版 (Town Mook)

Firebirdといえばこれでしょう、というのは嘘ですが、おいしい焼き鳥、焼き豚のお店で満杯です。
+ RECOMMEND
Visual C#.NETによる 明解 アルゴリズムとデータ構造
Visual C#.NETによる 明解 アルゴリズムとデータ構造
白井 豊
地味なシリーズながら、なかなかわかりやすく記述されています。
+ RECOMMEND
これだけは理解しておきたい ソフトウェア開発の知識
これだけは理解しておきたい ソフトウェア開発の知識
白井豊
地味なシリーズながら、広範囲にわたる内容をうまくまとめています。
+ RECOMMEND
SoftwareDesign(ソフトウェアデザイン) 2010年 01月号 [雑誌]
SoftwareDesign(ソフトウェアデザイン) 2010年 01月号 [雑誌]

特集「LLとオープンソースに学ぶコードを読む技術」に寄稿いたしました。
+ RECOMMEND
WEB+DB PRESS Vol.54
WEB+DB PRESS Vol.54
WEB+DB PRESS編集部
ミックさんの連載、いつも見てます。
+ RECOMMEND
acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブルー AS1410-BB22
acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブルー AS1410-BB22

うーん、値段と大きさ、機能のバランスがたいへんGood!
+ RECOMMEND
acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22
acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22

色違い黒: メモリは最大4GBとあるが、がんばれば8GBいけるらしい。
+ RECOMMEND
+ RECOMMEND
Linuxで作るアドバンストシステム構築ガイド (18Network Server Construction Guide)
Linuxで作るアドバンストシステム構築ガイド (18Network Server Construction Guide)
デージーネット
名著といわれた「Linuxアドバンストネットワークサーバ構築ガイド〜HAサーバ構築編」の改訂版です。要チェック!
+ RECOMMEND
一太郎2010 [25周年記念パック] 特別優待版
一太郎2010 [25周年記念パック] 特別優待版

一太郎2010単品優待版。MS Officeとか持っている人はこちら。
+ RECOMMEND
JUST Suite 2010 [一太郎25周年記念パック] 特別優待版
JUST Suite 2010 [一太郎25周年記念パック] 特別優待版

JUST Suite 2010優待版。MS Officeとか持っている人はこちら。
+ RECOMMEND
日経ソフトウエア 2010年 01月号 [雑誌]
日経ソフトウエア 2010年 01月号 [雑誌]

やはりビギナーには日経ソフトウエアかな。
+ RECOMMEND
Software Design ( ソフトウェアデザイン ) 2010年 02月号 [雑誌]
Software Design ( ソフトウェアデザイン ) 2010年 02月号 [雑誌]

Key-valueストアのまとめ(memcached除く)と松信さんのMySQL短期連載1回目(4回予定)が掲載されています。
+ RECOMMEND
Kaspersky Internet Security 2010 1年版 鷹の爪コラボパック
Kaspersky Internet Security 2010 1年版 鷹の爪コラボパック

た〜か〜の〜つ〜め〜。
ファンにうれしいコラボパック。
+ RECOMMEND
ゼロから学ぶ!最新データベース (日経BPパソコンベストムック)
ゼロから学ぶ!最新データベース (日経BPパソコンベストムック)

最新のデータベース勉強ムック。付録はMS SQL Server Express Edition.
+ RECOMMEND
+ RECOMMEND
玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2
玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2

Aspire 1410 HDD換装後、昔のHDDはこれにいれます。
+ RECOMMEND
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ LINKS
+ PROFILE