- ベストアンサー
SQL文の作成苦戦しています。。
SQL文の作成で困っております。 有識者の方、ご教授願います。 取得したい情報は、以下の通りです。 HOGEテーブル |COL-A|COL-B|COL-C| 111 1 1 … (1) 111 2 1 111 3 2 222 1 2 … (2) 222 2 3 1.Aでグルーピングした中で、COL-Cの最小値を取得 2.#1の中で一番小さい値を取得 ようするに、(1)や(2)のような情報を取得したいのです。 自分自身で作成したSQLは以下のような感じですが、 ちょっと遅いのです。。。 SELECT COL-A, MIN(COL-B), MIN(COL-C) FROM HOGE1, ( SELECT COL-A, MIN(COL-C) AS COL-C FROM HOGE GROUP BY COL-A ) HOGE2 WHERE HOGE1.COL-A = HOGE2.COL-1 AND HOGE1.COL-C = HOGE2.COL-C GROUP BY COL-A 理由はいろいろあります。ですが、最大の理由は、COL-Cの最小値を取得する為に作成しているサブクエリーじゃないかと思っています。そもそも、HOGEテーブル自体、10万件レベルのテーブルを結合して作っているテーブルなので、VIEWを作ってる時点で遅いんです。それに輪をかけて、サブクエリーなんてものを作っているものだから。。。できるだけ、サブクエリーを避けて取得したいのですが、なかなか上手くいきません。ただ、これ以外の方法は存在しない気もします。。 これ以外の方法で、良い方法があればご教授頂きたく。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- taka451213
- ベストアンサー率47% (436/922)
お礼
レス遅れてしまい、申し訳ございません。 上記、クエリーを試したところ、非常にパフォーマンスが向上いたしました。 お忙しいところ、ご助言ありがとうございました。