【发布时间】:2016-08-26 13:45:23
【问题描述】:
在为我的目的找到正确的 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
我之所以使用这种形式的查询,原因如下:
- 在 Matlab 中生成并使用 SQL 查询来获取数据。
- 根据 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。
有没有一种优雅的方式来加速查询?
提前致谢。
【问题讨论】:
标签: sql matlab accelerate