2017-08-10 16 views
-6
私は最大(値)を持つ行を照会する必要が
 date   value 
    18/5/2010  40 
    18/5/2010  20 
    20/5/2010  60 
    18/5/2010  30 
    17/5/2010  10 
    16/5/2010  40 
    18/5/2010  60 
    18/5/2010  25 

出力SQL - オラクル

date   value 
18/5/2010  60 
20/5/2010  60 

(すなわち60内のサブクエリを使用せずに最大値を持つ列を持つ行を選択する方法)。したがって、ここでは2つの行が得られます。日付が任意の順序

Plzをにすることができ
は私が

...

ネストされたクエリは罰金になりますサブクエリを使用せずに、動的クエリを必要とするSUBQUERY

を使用していません

私はrownumを使ってそれを試しました...どこrownum < some_value ...しかし、それは動的ではありません

+1

「MAX」を使用してみましたか? [こちら](https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions085.htm)は、使い慣れていない場合に役立つリンクです。 – Aaron

+0

それは冗談ですか?私はすでにそれを行った。サブクエリを使用して今私はそれを慎重に読んで単一またはネストされたクエリを介して解決したい....私はhvでパーティションを超えてその論理を行った... – mayank

+3

また、あなたは習慣をあなたを助けようとしている人々を侮辱していますか?それはどのように一般にうまくいくのですか? – APC

答えて

0

12cでは、FETCH節でこれを行うことができます

select * from the_table 
order by value desc 
FETCH FIRST 1 ROWS WITH TIES; 
+1

これはOracle 12でのみ有効です。 –

+0

私は12cを使用していません...しかし、少なくともあなたのロジックは強いと回答しました...そして、私がネストされたクエリを必要としない理由は、 80000行+8列ですので、すでに外部クエリがあり、サブクエリを使用して効率的な方法で実行することができませんでした。 – mayank

+1

@mayankあなたの質問に答えのコメントの代わりに。 – SandPiper