kuroの覚え書き

96の個人的覚え書き

phpのSQLクエリをSQLalchemyに移植

$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)