service_t というテーブルがあり、unix タイムスタンプが入力された effective_dt 列があります。max effective_dt を持つすべての行を検索する必要がありますが、effective_dt は特定の値より小さくなければなりません。次のSQLがありますが、効率的ではないと思います:
Select *
from service_t t1
where t1.effective_dt <= :given_value
and t1.effective_dt = (select max(effective_dt)
from service_t t2
where t2.effective_dt <= :given_value
and t1.id = t2.id)
これは効率的ですか、それとも他の良い方法ですか?ありがとう!