制作一个mysql查询

时间:2015-03-26 06:38:03

标签: php mysql

嘿我试图弄清楚如何从mysql获得一些排名结果。 我有一个db表:

id |开斋节结果

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查找中完成吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

尝试使用聚合:

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

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