제 목적에 맞는 SQL 쿼리를 찾은 후에 쿼리가 느리다는 것을 알게되었습니다.SQL 쿼리를 일반화하고 빠르게 만듭니다.
- SQL 쿼리를 생성하고 데이터를 가져 오기 위해 matlab에 내에서 사용되는 다음과 같이 나는이 양식에 쿼리를 사용하는 이유
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
이유이다.
- 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 쿼리는 작동하지 않습니다. 내부 SELECT 문에 실수가있을 수 있습니까? 감사. – grima
아마도 한 개의 댓글이 더 많습니다. t_col_1과 t_col_2가 날짜 일 때도 SQL 쿼리가 작동합니까? 내 쿼리의 숫자는 단지 예일뿐입니다. – grima
@grima 아,'GROUP BY' 문을 잊어 버렸습니다. 이제 내부 쿼리가 작동합니다. 데이터가 날짜 일 경우 데이터로 작업 할 수 있는지 여부에 관해서는, 당신이 당신의 표본 샘플을 주면 더 잘 대답 할 수 있습니다. – Rominus