検索

ホームページ  >  に質問  >  本文

指定された時間範囲内の最後のタイムスタンプを効率的に検索します。

問題は仮想のオンライン ストアに関するものです。具体的な問題についてデータを単純化します。

2 つのテーブルがあるとします。1 つは各顧客の登録日を保持します

リーリー

、2 番目の方法では、顧客のすべてのオンライン訪問が保存されます

リーリー

各ユーザーについて、最も効率的な方法で、ユーザーが登録から 7 日以内にオンライン ストアに最後にアクセスした日を調べたいと考えています。 ユーザーが登録以来ストアを訪問していない場合は、登録から 7 日以内の最終訪問日として NULL を返す必要があります。

もちろん、顧客 ID で顧客を LEFT JOIN にアクセスし、アクセス日 登録日 と # の間でフィルタリングすることもできます。 ##7 を追加し、最後に各 customers最大日付を取得します。 ただし、最初の結合では巨大なテーブルが生成されるため、この計算コストのかかる操作は避けたいと考えています。

ご意見ありがとうございます!

P粉232409069P粉232409069256日前646

全員に返信(1)返信します

  • P粉514458863

    P粉5144588632024-03-23 10:28:00

    これがおそらく最も効率的です:

    リーリー ###索引:### リーリー

    「計算量の多い操作」に関する懸念:

    行を取得するコストは、式を評価するコストよりも高くなります。
    • インデックスへのアクセスについての私の推奨事項は、インデックスを「上書き」することで、インデックスのみを参照することです。
    • 返事
      0
  • キャンセル返事