用MySQL计算Deciles

时间:2017-02-06 18:35:56

标签: mysql percentile quartile

我有一个非常简单的表:

CREATE PROCEDURE `TEST`()
BEGIN

CREATE TEMPORARY TABLE IF NOT EXISTS tableInMemory ENGINE=MEMORY AS (SELECT size FROM availables ORDER BY size ASC);
SELECT COUNT(size) INTO @myvar FROM tableInMemory ;

PREPARE STMT FROM "SELECT size INTO @rank FROM tableInMemory LIMIT ?,1;"; 
SET @x = 1;
WHILE @x  <= 9 DO
   SET @idx = FLOOR(@myvar * @x / 10) - 1;
   EXECUTE STMT USING @idx;
   SELECT @rank AS 'Value', COUNT(size) AS 'Count' FROM tableInMemory WHERE size < @rank;
   SET  @x = @x + 1; 
END WHILE;
DEALLOCATE PREPARE STMT;

END

此表中有7 285 000行。 我根据大小的数量搜索计算10十分位数的最佳方法。

我这样做这个简单,快速的方法来计算指定的十分位数:

document.getElementById("user_login").setAttribute("placeholder","Email Address");

我不确定,这是最好/最有效的方法。

任何人都可以给我一个提示吗?

0 个答案:

没有答案