私はストアドプロシージャでフィルタリングする必要がある何百万ものログを持つSQL Server 2016のテーブルを持っています。各ログには、このフィルタリングに使用するLogTime
フィールドがあります。私はLogTime
で互いに近すぎるものをスキップして、15分以上離れたログだけを返したいと思います。DateTime間隔によるSQL行のフィルタリング
一般に、ログは互いに秒以内であるため、この時間間隔によってログが適切に制限されます。また、ほとんどのログ項目をスキップしても構いません。また、間隔が少なくとも15分である限り、次のログが数時間離れている場合、ログ間の間隔が15分を超えるかどうかは関係ありません。
たとえば、最初のログは15:30に、15:45まですべてのログをスキップします。次のログを15:46に見つけて、そのように実行してください。私は必要な出力の
例:
15:30 - Log Content
15:46 - Log Content
16:12 - Log Content
18:00 - Log Content
私は試行錯誤のもののすべての種類を検索し、しようとしてきました。残念ながら、私のSQL知識はそれほど広がらず、まともな時間枠で実行されるソリューションを作成することができませんでした。
私たちは問題に対する満足のいくSQLソリューションを見つけることができませんでしたので、次のチャンクを要求する前に、DBへリクエストをチャンクし、サーバーでフィルタリングする組み合わせ戦略を使用しました。 – Iyashu5040