Oracle最適化SQLクエリ-複数のMax()

学習者

最初にデータを選択しmax(event_date)、次にデータをフィルタリングしてから、max(event_sequence)もう一度フィルタリングする必要があるテーブルがあります。max(event_number)

動作するが時間がかかる次のクエリを作成しました。

ここでクエリ

SELECT DISTINCT a.stuid,
                   a.prog,
                   a.stu_prog_id,
                   a.event_number,
                   a.event_date,
                   a.event_sequence,
                   a.prog_status
   FROM table1 a
   WHERE a.event_date=
       (SELECT max(b.event_date)
        FROM table1 b
        WHERE a.stuid=b.stuid
          AND a.prog=b.prog
          AND a.stu_prog_id=b.stu_prog_id)
     AND a.event_seq=
       (SELECT max(b.event_sequence)
        FROM table1 b
        WHERE a.stuid=b.stuid
          AND a.prog=b.prog
          AND a.stu_prog_id=b.stu_prog_id
          AND a.event_date=b.event_date)
     AND a.event_number=
       (SELECT max(b.event_number)
        FROM table1 b
        WHERE a.stuid=b.stuid
          AND a.prog=b.prog
          AND a.stu_prog_id=b.stu_prog_id
          AND a.event_date=b.event_date
          AND a.event_sequence=b.event_sequence

データを取得するためのより速い方法があるのだろうかと思っていました。Oracle12cを使用しています。

ゴードン・リノフ

私はあなたが単純なrow_number()またはrank()が欲しいと思います

select t1.*
from (select t1.*,
             rank() over (partition by stuid, prog, stu_prog_id
                          order by event_date desc, event_sequence desc, event_number desc
                         ) as seqnum
      from table1 t1
     ) t1
where seqnum = 1;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Oracle-SQLクエリの最適化

分類Dev

Oracleクエリの最適化

分類Dev

Oracle groupby / aggregateクエリの最適化

分類Dev

クエリ最適化による Oracle SQL の「複雑な」グループ

分類Dev

レポートの複数結合SQLクエリ最適化

分類Dev

クエリSQLの最適化(MySQL)

分類Dev

WordPress-SQLクエリの最適化

分類Dev

地理的なSQLクエリの最適化

分類Dev

Django-SQLクエリの最適化

分類Dev

MS-SQLクエリの最適化

分類Dev

SQLクエリの最適化

分類Dev

SQL / PDOクエリの最適化

分類Dev

SQLクエリの最適化

分類Dev

SQLクエリの最適化

分類Dev

クエリの最適化?

分類Dev

複数選択でSQLクエリを最適化する方法

分類Dev

削除クエリのSQLクエリの最適化

分類Dev

複数の和集合を使用したSQLクエリの最適化

分類Dev

SQLクエリの相互適用を最適化する方法

分類Dev

最適化するためのOracleでのクエリ

分類Dev

SQLクエリの数を最適化する

分類Dev

Oracleクエリ最適化の推奨事項

分類Dev

Oracle-このクエリを最適化できますか?

分類Dev

where句のmaxを使用してOracleでクエリを最適化する方法

分類Dev

SQLグループ化と結合クエリの最適化

分類Dev

このSQLクエリを最適化/簡素化する

分類Dev

クエリの最適化(複数の結合)

分類Dev

ActiveRecordRailsを使用した複数のクエリの最適化

分類Dev

複雑なSQLクエリを最適化する