$query1 = "SELECT * FROM `$table_name1` left join ( select sum(case when `V_count` <= $value1 and `A`='x' then 1 when `V_count` <= $value1 and `A`='y' then 2 else 0 end) as count,`N`,`M` from `$table_name1` group by `N`, `M`) as tbls using (`N`,`M`) where `$table_name1`.`M` REGEXP '$gene_name1' and `$table_name1`.`N` REGEXP '$sample_name1' and count >=2";
何がしたいのかはわかったと思うが、はてさてこのクエリをどう書けばいいんでしょうか?
V_countが$value1以下でAがxのときはcount=1
V_countが$value1以下でAがyのときはcount=2
それ以外は0
これをN,Mに該当するものでそれぞれ集めて合計した結果が2以上になるものを選べ
ってことかな?
断片断片はなんとなくわかってきたようなそうでないような
caseの部分
case([and_(Exome.variant_count <= form.count.data, Exome.zygo == 'het'), 1], [and_(Exome.variant_count <= form.count.data, Exome.zygo == 'hom’), 2], else_=0)
なんだと思うけど、結局Exome.variant_count <= form.count.dataは必須なんだから、まずはこいつだけでフィルターしてやってもいいんじゃなかろうか。
if form.count.data: exome = exome.filter(Exome.variant_count<=form.count.data)