select *, (T3.price_usd - T1.price_usd)/T3.price_usd as b
from ticker T1
INNER JOIN mycoins T2
ON T1.symbol = T2.symbol
INNER JOIN ticker T3
ON T1.symbol = T3.symbol
WHERE T1.timer = (Select max(timer) from ticker)
AND T3.timer = (Select min(timer) from ticker where timer
> (Select max(timer) from ticker - 60*60*24*7*2))
上記のコードには、(Select max(timer) from ticker)
がクエリで複数回実行されるという問題があります。これは、最大タイマー値が複数回使用されるためです。このコードを改善して最大タイマーを一度決定してからその値を再利用する方法はありますか?繰り返し計算のためのSQLの最適化
タグuはSQL'がちょうどクエリ言語である '使用してrのDBMS(MySQLの、MS SQL Serverの、など...)。 –
クエリはエラーなしで実行されていますか? –
これはウィンドウ関数を使用してより良く解決されました –