您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

选择TOP X(或底部)百分比作为MySQL中的数值

选择TOP X(或底部)百分比作为MySQL中的数值

:更深思熟虑的主题解释从更了解的人在这里。尽管如此,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)
);

将返回所有所需的记录。

我没有检查此查询性能,我认为使用临时表/变量的解决方案必须更有效。

MySQL 2022/1/1 18:18:45 有424人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶