2011-02-08 18 views
4

私はオラクル11gです。 次のクエリがn行を返すとします。クエリのn-1行を選択してください

SELECT t.id,t.from_date,t.price FROM prices t order by id, date 

そして、最初のn-1行だけをクエリから取得します。 内部クエリーを使用せずにどうすればできますか?

+0

なぜ内部クエリを使用しないのですか?そして、「最初のn-1」行は何から注文されたのでしょうか? –

+0

「最初の」n-1行を決定するためにあなたは 'ORDER BY'をどうしますか? –

+0

私は持っているので、すでにたくさんのロジックがあり、計算もしています。だからそれはかなり遅いです。私はすでにorderbyを使用していて、mysqlで 'limit'のようなものを求めていました。 – awsome

答えて

5

EDIT:質問に追加された追加情報に基づいて変更されました。

select p.id, p.from_date, p.price 
    from (select id, from_date, price, row_number() over (order by id desc) as r from prices) p 
    where p.r <> 1 
    order by p.id, p.from_date 
関連する問題