Mysql 使用group by和order by时获取最低值
我有一张桌子,看起来大约有50行。该表保存跟踪会议的结果。结构如下: 我正在做的是为每项活动列出前十名。以下是我到目前为止的情况:Mysql 使用group by和order by时获取最低值,mysql,sql,group-by,sql-order-by,Mysql,Sql,Group By,Sql Order By,我有一张桌子,看起来大约有50行。该表保存跟踪会议的结果。结构如下: 我正在做的是为每项活动列出前十名。以下是我到目前为止的情况: SELECT * FROM Times WHERE event='1600m' GROUP BY fname, lname ORDER BY time, event LIMIT 10 每个人可以在每个事件的列表上出现一次。这是可行的,但是如果你一直看下面1600米的距离 您可以看到Kyle Rummens的时间为4:32:00。下图是上面sql语句的结果:
SELECT * FROM Times WHERE event='1600m' GROUP BY fname, lname ORDER BY time, event LIMIT 10
每个人可以在每个事件的列表上出现一次。这是可行的,但是如果你一直看下面1600米的距离
您可以看到Kyle Rummens
的时间为4:32:00
。下图是上面sql语句的结果:
凯尔的时间是4:36:00
我如何才能让它成为1600m赛事的前10个最快时间的列表,每个人只能在列表中出现一次,这是每个人的最快时间
编辑:我被要求将结果添加到文本而不是图像中,因此它们如下所示:
这是上述查询的结果:
fname lname event time meetName date
====== =========== ===== ======== ==================== ==========
Jeron Tucker 1600m 04:09:00 Coaches Meet 2015-02-12
Chris Hughes 1600m 04:27:00 Distance Chalenge 2015-02-10
Andrew Rummens 1600m 04:28:00 Simplot Games 2015-02-20
Kyle Rummens 1600m 04:36:00 Simplot Games 2015-02-19
Alex Southerland 1600m 04:52:00 Coaches Meet 2015-02-12
Canyon Schmerse 1600m 04:54:00 Arcadia Invitational 2015-05-12
Joseph Stone 1600m 05:08:00 Coaches Meet 2015-02-12
Teron Tucker 1600m 05:09:00 Harvard Track Meet 2015-02-19
Little Jacob 1600m 05:12:00 Arcadia Invitational 2015-05-12
Connor Kleinman 1600m 05:54:00 BYU Invitational 2015-04-03
在选择后添加单词DISTINCT
SELECT DISTINCT * FROM Times WHERE event='1600m' GROUP BY fname, lname ORDER BY MIN(time) LIMIT 10
对每位游泳者使用min(time)
查找每位游泳者的最快时间:
SELECT fname, lname, min(time) as tune
FROM Times
WHERE event = '1600m'
GROUP BY fname, lname
ORDER BY time
LIMIT 10
也不需要按事件
排序,因为使用相关子查询总是'1600m'
:
SELECT t1.*
FROM Times t1
WHERE t1.event='1600m' AND t1.time = (SELECT MAX(time)
FROM Times t2
WHERE t2.event='1600m' AND
t1.fname = t2.fname AND
t1.lname = t2.fname)
ORDER BY t1.time
LIMIT 10;
这就是为什么我更喜欢DBMS,如果您使用的非聚合列不在group by
子句:-)@pax-amen中,那么DBMS会抱怨不已。这里存在1000个Q,因为没有错误。MySQL确实需要一个“免责声明”语法来让它通过,例如select*。。。x,y的宽大分组
谢谢,查询工作正常。在给你打分之前,让我再测试一下answer@phprunner你得到了什么输出?没有。对于kyle rummens
查询返回的行数为零,仍然没有最短时间扫描您是否将示例数据作为文本发布?如我附加的图像,但仅作为文本?是的,请将其添加到您的问题中。不是结果。您的原始样本数据。