- - PR -
各ステータス中最も良いものを各々取得したい
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2006-12-07 16:34
お世話になります。現在以下の問題にて悩んでおります。
+------+------+------+------+------+------+ | COL1 | ST1 | ST2 | ST3 | ST4 | ST5 | +------+------+------+------+------+------+ | A | 1 | 6 | 1 | 3 | 1 | | B | 2 | 4 | 5 | 8 | 9 | | C | 3 | 8 | 7 | 7 | 3 | +------+------+------+------+------+------+ 【仕様】 ステータスの優先順位は1,6,2,3,7,4,8,9。 各ステータス(ST1〜ST5)の中で最も良いステータスは以下の通りとなります。 ST1の最良ステータス:1 ST2の最良ステータス:6 ST3の最良ステータス:1 ST4の最良ステータス:3 ST5の最良ステータス:1 【質問】 上記のように各ステータスの中で最良のステータスをSQLにて取得したいのですが可能でしょうか。 (私の知識では無理だったので,現在はjavaプログラムで上記処理を行っております) ご教授お願い致します。 | ||||
|
投稿日時: 2006-12-07 16:59
RDBがなにか知らないので、動くか知りませんが。 | ||||
|
投稿日時: 2006-12-07 17:06
ご返信ありがとうございます。
申し訳ありません。環境の記述を忘れました。 環境を以下に記述します。 oracle9i Tomcat5.0 j2sdk1.4.2_10 | ||||
|
投稿日時: 2006-12-07 17:48
(x mod 5) * ( 1 + 0.6 * (x div 5))
あたりでいかが? データの意味の設定をしなおすほうが賢いとは思うけれども。 | ||||
|
投稿日時: 2006-12-08 03:22
Oracle でしたら、こんなのも有りかと...
DECODE(MAX(DECODE(col1,1,1,6,2,2,3,3,4,7,5,4,6,8,7,9,8)),1,1,2,6,3,2,4,3,5,7,6,4,7,8,8,9) [ メッセージ編集済み 編集者: とんくま 編集日時 2006-12-08 03:23 ] | ||||
|
投稿日時: 2006-12-08 10:54
なるほど・・・これなら可能ですね。大変勉強になりました。 あとは当テーブルのデータ件数が数千件有るのでresponseを計測してみようと思います。 ありがとう御座いました。 | ||||
1
