php - 进行 mysql 查询

标签 php mysql

嘿,我正在尝试弄清楚如何从 mysql 中获得一些排名结果。 我有一个数据库表:

编号 |开斋节 |结果

eid为参赛者编号(本项目为5位评委的结果), 结果是 [0, 100] 区间的值。

所以,每个参赛者会有5个结果,我想去掉最高和最低的结果,只留下中间的3个。

然后我将 3 个结果加在一起,这就是进入点。

在一天结束时,我需要获得从最高结果到最低结果的参赛人数列表。

到目前为止我得到了这个:

SELECT * FROM burnout_results WHERE result NOT IN( (SELECT MIN(result)
FROM burnout_results WHERE eid='1'),
(SELECT MAX(result) FROM burnout_results WHERE eid='1') ) AND eid='2' LIMIT 3

但这样我一次只能查找 1 个 eid,我必须在 php 中将结果相加,但我无法从那里计算出如何对它进行排名。 ..

这主要可以在 mysql 查找中完成吗?感谢您的帮助。

最佳答案

尝试使用聚合:

SELECT eid, SUM(result)-MIN(result)-MAX(result) AS r FROM burnout_results GROUP BY eid;

这样,对于每个 eid,您将所有结果相加,减去最高值和最低值

关于php - 进行 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272413/

相关文章:

php - 删除子标记名称不是值

php - 使一行可点击

Php 循环所有结果在下一个 mysql 查询中

php - 获取所选下拉列表的值以与另一个下拉列表进行比较

php - 二进制输出参数 - PHP、PDO、MySQL : result is always null

mysql - 创建触发器时出错

php - 如何编写此 mysql 连接查询,然后根据需要进行排序?

javascript - 如何使用 PHP 在 JavaScript (Highcharts) 中设置值

php - 我怎样才能停止在 Woocommerce 中四舍五入运费

php - 客户端和服务器的时间/日期差异?