ORACLE質問 PART2
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
500:デフォルトの名無しさん 08/04/10 01:35:36 ま た マ ル チ ポ ス ト で す か ? 501:デフォルトの名無しさん 08/04/10 21:11:37 >>499 アホか。そんな単純な解決方法ができると思ってんのか? ↓こんな場合どーすんだよ 1: 本 \1000 2: 弁当 \1000 3: 服 \1000 4: 弁当 -\1000 502:デフォルトの名無しさん 08/04/11 13:16:21 >>499 -- (KINGAKUの絶対値毎にIDの逆順でランク付けした値) ≦ (KINGAKUの絶対値毎の+と−の個数の差) の -- 行を選択しているつもり。 -- 誰かもっと短くしてくれ。 select id, kingaku from ( select tbl.id, tbl.kingaku, rank() over (partition by abs(tbl.kingaku) order by id desc) r, valid_rows from ( select * from hoge where kingaku >= 0 order by id desc ) tbl join ( select phoge.kingaku, plus_count - nvl(minus_count,0) valid_rows from ( select kingaku, count(*) plus_count from hoge where kingaku >= 0 group by kingaku ) phoge left join ( select kingaku, count(*) minus_count from hoge where kingaku < 0 group by kingaku ) mhoge on (phoge.kingaku = - mhoge.kingaku) ) ct on (tbl.kingaku = ct.kingaku) ) where r <= valid_rows order by id; -- まあ、SQLだけでどうにかしようなんて考えない方がいいんじゃね?
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4318日前に更新/123 KB
担当:undef