当前位置: 首页 > 面试题库 >

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

巫马望
2023-03-14
问题内容

我想知道在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)
);

返回所有所需的记录。

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



 类似资料:
  • 问题内容: 我想使用第二列(art_count)仅显示那些包含总art_count的X%的行。 我的资料: 到目前为止我的查询: 使用SUM进行了尝试,但未成功。 问题答案: 您需要为插入一个值

  • 我需要根据该值被选择的百分比概率选择一个值。例如: 时间增量值a的10% 时间增量值b的20% 时间增量值c的30% 时间增量值d的40% 百分比加起来总是正好100% 我遇到过几种像这样的解决方案,但我确定它们不可能是正确的。以下是使用上述解决方案构建的示例程序: 输出: 预期输出: 我相信我需要使用某种算法将百分比转换为从0到99的刻度,以便随机数生成器可以准确地选择一个值。不过,我想不出如何

  • 问题内容: 我有一个带有PHP脚本的站点,此脚本在返回由JavaScript文件访问的数据的内部有一个SQL查询。该数据是一个庞大的航班数据列表,我需要能够在指定的任何给定日期中随机选择(比如说)全部航班的40%。为了论证,让我们这样说: 我知道要获得随机使用的行数,理想情况下我想说,但这行不通。 编辑: 问题答案: 您可以记录所有内容,然后按以下方式计算所需的内容:

  • 问题内容: 我有一个MSSQL表存储,该存储在表中具有以下列: 有人可以帮我进行SQL查询,以产生占雇员总数(NumEmployees)30%的顶级商店(storeID)吗? 问题答案: WITH cte AS (SELECT storeid, numemployees, ( numemployees * 100 ) / SUM(numemployees) OVER (PARTITION BY 1

  • 我在写这个代码 当我启动我的应用程序时,它会自动进入第一个底部(我有三个底部)。我想在导航视图中将其更改为第二个底部。请帮帮我

  • 问题内容: 我有一张与客户,用户和收入类似的表格(实际上成千上万条记录): 我想做的是只回报支出最高的客户,这些客户占用户总收入的80%。 要手动执行此操作,我将按詹姆斯的客户的收入对其进行排序,计算出总计的百分比和运行的总计百分比,然后仅返回记录,直到运行的总计达到80%: 我已经尝试过使用CTE,但到目前为止还是空白。有没有办法通过单个查询而不是在Excel工作表中手动执行此操作? 问题答案: