选择TOP X(或底部)百分比作为MySQL中的数值
我想知道在MySQL中是否可以使用任何函数从包含数值的列中选择TOP X(或底部)百分比。
基本上,我有一个包含价格列表的列,我只想返回价格最高的百分之十的那些字段。有什么建议么?
回答:
:更深思熟虑的主题解释从更了解的人在这里。尽管如此,MySQL
似乎仍然没有 嵌入式 函数来计算百分位数。
尝试:
在价格 > =的情况下选择从价格中(=从价格中选择0.9 最大(价格))
SELECT price FROM prices p1 WHERE(SELECT count(*) FROM prices p2 WHERE p2.price >= p1.price) <=
(SELECT 0.1 * count(*) FROM prices)
);
这将给出价格 P1 ,其 价格 表中 价格 > = P1 的记录数将是 价格 表中记录总数的十分之一。之后:
SELECT * FROM prices WHERE price >= (SELECT price FROM prices p1 WHERE(SELECT count(*) FROM prices p2 WHERE p2.price >= p1.price) <=
(SELECT 0.1 * count(*) FROM prices)
);
将返回所有所需的记录。
我没有检查此查询的性能,我认为使用临时表/变量的解决方案必须更有效。
以上是 选择TOP X(或底部)百分比作为MySQL中的数值 的全部内容, 来源链接: utcz.com/qa/421009.html