0

複数の行を選択した後、各行をループして、最初の行に関連する情報を持っている人をフェッチするために必要な問題。

例:

select NAME,ENGLISH_GRADE,FRANCE_GRAE
from (some complex query that have order by and returns 100 rows) WHOLE_ROWS
where

//Here I need to loop over WHOLE_ROWS and make something like that:
//if(currentRow.ENGLISH_GRADE==WHOLE_ROWS(0).ENGLISH_GRADE)
//fetch this row
4

1 に答える 1

1

基本的に、クエリをそれ自体に結合する必要があります。サブクエリファクタリング句を使用して行うことができます。

WITH complex_query AS
    ( ... complex query here ... ) 
SELECT 
  FROM complex_query cq1
 WHERE cq1.english_grade = ( SELECT english_grade FROM cq1
                              WHERE rownum = 1 )

これがSQLフィドルです。アナリティクスを使用してこれを行うこともできますが、それらは私には理解しにくいようです。

于 2012-10-09T01:07:54.153 に答える