問題タブ [genomicranges]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 多くの交差する範囲の 1 つだけをフィルタリングする方法
はるかに長く複雑なクエリの一部として、重複する間隔のエントリを 1 つだけ保持し、重複しないすべてのエントリを保持しようとしています。最小限の例を次に示します。
エントリ 2 と 3 は同じ id で範囲が重複しています (一方の開始と終了は他方に含まれています) が、 と は異なりcutoff
ますseq_region
。エントリ #3 は、実際にはエントリ #2 の部分文字列です。私がSQLに入れることができないのは条件です:
- 同じ seqid の 2 つの範囲が重複する場合は、スコア == 0.75 (または、これらの属性が結合されているため、最長の seq_region) を持つ範囲を選択します。
目的の出力は、エントリ #1 と #2 である必要があります。
これをSQLクエリとしてどのように配置するのですか? オーバーラップ条件では、一方の間隔が常に他方の間隔に含まれていると想定できます (開始または終了は同じである可能性があります)。問題があれば、それは SQLite3 データベースです。
これにはある種の自己内部結合、または操作によるグループ化を行う必要があると思いますが、うまくいきません。ご意見をお待ちしております。