-2
特定の機能を持つ行のパーセンテージを取得したい。そのために私は次のクエリを使用します。このクエリは、簡略化されてケースCOUNTの内部で0が返されるとカウントされますか?
select
count(distinct case when a.has_feature="Y" then p.id else 0 end)*100/count(distinct p.id)
FROM products p
JOIN a on a.id=p.id
WHERE 1
を、しかし目標は一つだけのクエリでは、この割合を取得することです、と私はまた、製品を必要とするようa.has_feature="Y"
上のテストがWHERE
句にすることはできませんこの機能を持たない
私の質問は最初の件数です。 case when
はp.id
または0を返します。0はカウントされますか、またはnull
などを使用する必要があります。そうでないと機能がカウントされません。
ただ試してみてください!あなたの質問に答えるために、0はカウントし、NULLはカウントしません。 – fancyPants
数時間後に実行されるので、確かめる前に試してみませんが、0のカウントとnullを説明してくれてありがとうございます。 –
この特定のクエリを実行する必要はありません。簡単なテストクエリはどちらかを行います。 – fancyPants