ユーザーの取引の一覧があります。各ユーザーには複数のトランザクションがあります。私は次のコードを書いて、ユーザーの最新のトランザクションを見つけて、過去7日間以上のトランザクションを持っていないユーザーを選びましたが、自分のコードの時間的複雑さが何であるか分かりません。誰かが私のコードの時間的複雑さをどのように練習することができるのか説明できますか?次のSQLコードの時間の複雑さを解決するにはどうすればよいですか?
trans_dateは取引日です。ここで
select user_id,_date,datediff(curdate(),_date)
from(
select t1.send_id as user_id,from_unixtime(t1.trans_date) as _date
from transactionhistory as t1
where from_unixtime(t1.trans_date) =
(select max(from_unixtime(t2.trans_date))
from transactionhistory as t2
where t2.send_id = t1.send_id)) as tab
where datediff(curdate(),_date) > 7;
EXPLAINコマンドの出力
最初のステップは、システムにクエリの実行計画を説明することです。あなたはどのような環境で走っていますか? Hadoopの場合は、EXPLAINコマンドを使用し、質問に出力を追加します。 –
Richard
@リチャード質問にEXPLAINコマンドの出力を追加しました。それは、SQLサーバー環境です。あなたは今、時間の複雑さを練習するのを助けることができますか? –
Behroz