- - PR -
レコードを一意に特定することのできるカラムの組み合わせ
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-05 12:39
以下の ソフトウェア開発技術者だったか基本情報技術者で、 見かけた考え方を使っているのである。 X BitAnd Y = X ⇔ Xのビットが立っている位置のYのビットは立っている ---例--- 1100 BitAnd X = 1100 ⇔ X は 1100,1101,1110,1111 のどれかである(まあ11100001100とかそんなのもありえますが ) | ||||
|
投稿日時: 2007-07-07 15:10
GROUPING_ID は、Oracle 固有の関数と思います(少なくとも、DB2, MS SQL Server, PostgreSQL, MySQL には無いようです)。
GROUPING(ColA)*32+GROUPING(ColB)*16+GROUPING(ColC)*8+GROUPING(ColD)*4+GROUPING(ColE)*2+GROUPING(ColF) とすれば同等の結果を得ることが出来ますが、非常に煩わしく、特に今回のように複数回使用する場合、GROUPING_ID の便利さがよく分かりました。 また、BITAND はいまさら BIT 操作が必要か?と思っていましたが、明智重蔵さんの例で有効性が理解できました。(そういえば、Oracle のマニュアルにも OLAP で有用であるというような記述が有ったように思います。) 大変勉強になりました。 DB2 では上記関数が使えませんが、X BitAnd Y = X の考えを使わせていただければ、私の最初の例よりは、簡略化できそうです。例えば、
[ メッセージ編集済み 編集者: とんくま 編集日時 2007-07-07 16:05 ] |