私はあなたが望むようにあなたのクエリを書き直しました:
SELECT count(*) AS ct
FROM sample_cov
WHERE target = 542
AND percent_cov < 10;
count()0一致する行 (または列に null 以外の値) が見つからない場合に返されます。の必要はありませんcoalesce()。これに関するマニュアルを引用します:
count を除いて、行が選択されていない場合、これらの関数は null 値を返すことに注意してください。
鉱山を強調します。count()で戻ってきたときに別の値を返したい場合は、ステートメント0を使用します。CASE
また、count(percent_cov)持っているうちに書いても無駄ですWHERE percent_cov < 10。この場合、null 以外の値のみが適格でcount(*)あり、同じ結果がわずかに速く簡単に得られます。
何もグループ化しないため、句は必要ありませGROUP BYん。テーブル全体を集計しています。でき
ますが、これは別のクエリになります。 GROUP BY target
SELECT target, count(*)
FROM sample_cov
GROUP BY target
WHERE percent_cov < 10;
HAVING句の式をもう一度綴る必要があります。出力列名は と でのみ表示されORDER BY、またはでは表示されGROUP BYません。WHEREHAVING