目的に合った適切な SQL クエリを見つけた後、クエリが遅いことに気付きました。
WITH temp_table (t_col_1, t_col_2, t_col_3) AS
(
SELECT col_1 AS t_col_1, col_2 AS t_col_2, col_3 AS t_col_3
FROM actual_table
WHERE ID = 100 AND PID = 1245
)
SELECT t_col_1, t_col_2, t_col_3
FROM temp_table AS t1
WHERE t1.t_col_2 BETWEEN 1 AND 12541
AND t1.t_col_1 = (SELECT max(t2.t_col_1)
FROM temp_table AS t2
WHERE t2.t_col_1 < 15147
AND t2.t_col_2 = t1.t_col_2)
ORDER BY t1.t_col_2
この形式でクエリを使用する理由は次のとおりです。
- SQL クエリが生成され、Matlab 内でデータを取得するために使用されます。
- ID によっては、列 col_1 と col_2 が入れ替わることがあり、これが t_col_1 = col_2 と t_col_2 = col_1 の理由です。この場合、Matlab スクリプトは col_1 AS t_col_2 と col_2 AS t_col_1 を置き換えます。
クエリを高速化するエレガントな方法はありますか?
前もって感謝します。