何千もの行を含むテーブルがあり、「ラウンド」と呼ばれるフィールドの 1 つの 90 パーセンタイルを計算したいと考えています。
たとえば、90 パーセンタイルにある round の値を選択します。
MySQL でこれを行う簡単な方法がわかりません。
この種の計算をどのように開始するかについて、誰かが提案できますか?
ありがとうございました!
何千もの行を含むテーブルがあり、「ラウンド」と呼ばれるフィールドの 1 つの 90 パーセンタイルを計算したいと考えています。
たとえば、90 パーセンタイルにある round の値を選択します。
MySQL でこれを行う簡単な方法がわかりません。
この種の計算をどのように開始するかについて、誰かが提案できますか?
ありがとうございました!
http://www.artfulsoftware.com/infotree/queries.php#68
SELECT
a.film_id ,
ROUND( 100.0 * ( SELECT COUNT(*) FROM film AS b WHERE b.length <= a.length ) / total.cnt, 1 )
AS percentile
FROM film a
CROSS JOIN (
SELECT COUNT(*) AS cnt
FROM film
) AS total
ORDER BY percentile DESC;
非常に大きなテーブルの場合、これは遅くなる可能性があります