ほぼ必要なことを実行するSQLステートメントがあります。私が必要としているのは、両方のqseqid値に対してpindent>60およびcoverage> 60となる属を見つけることです。たぶんこの質問のように、私はある種の参加が必要だと思います
これが私が今持っているものです。これは私が望む結果を達成しません。
SELECT qseqid, genus, species, txid, sgi, pindent, coverage
FROM vmdavis.insecta10000
WHERE pindent > 60
AND coverage > 60
AND qseqid in ("diaci0.9_transcript_99990000013040", "diaci0.9_transcript_99990000022677")
ORDER BY genus, species, qseqid, coverage, pindent;
これが機能しない理由の例を次に示します。Anchonは、dia ... 040のqseqidについて上記の基準を満たしていますが、dia ... 677については満たしていないため、この行はわかりません。
| diaci0.9_transcript_99990000013040 | Anchon | sp. NYSM 95-02-01-35 | 265052 | 6467730 | 80.93 | 61.7597 |
これが表のサンプルです
mysql> SELECT qseqid, genus, species, txid, pindent, coverage FROM vmdavis.insecta10000 limit 5;
+------------------------------------+---------+-------------+--------+---------+----------+
| qseqid | genus | species | txid | pindent | coverage |
+------------------------------------+---------+-------------+--------+---------+----------+
| diaci0.9_transcript_99990000000055 | Apis | florea | 7463 | 97.5 | 2.58107 |
| diaci0.9_transcript_99990000000055 | Bombus | impatiens | 132113 | 97.5 | 3.3534 |
| diaci0.9_transcript_99990000000055 | Nasonia | vitripennis | 7425 | 97.5 | 1.58343 |
| diaci0.9_transcript_99990000000055 | Bombus | terrestris | 30195 | 97.5 | 3.41207 |
| diaci0.9_transcript_99990000000055 | Apis | mellifera | 7460 | 97.5 | 2.88889 |
+------------------------------------+---------+-------------+--------+---------+----------+
これが例です。この場合、Agetocera属は2回リストされています。これは、両方のqseqidについて、ピンデントとカバレッジの基準を満たしているためです。Agetoceraが両方のqseqidでpindent>60およびcoverage>60の条件を満たさなかった場合は、これらの行のいずれかをリストする必要があります。
| qseqid | genus | species | txid | pindent | coverage
| diaci0.9_transcript_99990000013040 | Agetocera | mirablis | 715820 | 291191497 | 82.37 | 60.7963 |
| diaci0.9_transcript_99990000022677 | Agetocera | mirablis | 909986 | 309755769 | 77.52 | 78.6269 |
私はmysqlに非常に慣れていないので、この質問に対する答えはおそらくstackoverflowにあると思います。解決策を見つけたら、何を検索したり理解したりするのかわかりません。質問がより適切であるか、より適切なタイトルを提案できる場合は、更新します。