[英]Select global min() in a new column for all rows
我有一张桌子db_race
--------------------------
| Name | Time | Map |
--------------------------
| Max | 240 | test1 |
| Alvin | 600 | test2 |
| Amanda | 234 | test1 |
| Angela | 50 | test1 |
| Angela | 2000 | test1 |
--------------------------
我现在想在地图上选择按最佳时间排序的一些行,如下所示
SELECT Name, min(Time) AS Time
FROM db_race
WHERE Map='test1'
GROUP BY Name
ORDER BY Time ASC
这样做很好,但是我希望将所有记录中的最佳时间添加到另一列中,如下所示。 (以后可以使用,但那不是问题的一部分)
----------------------------
| Name | Time | TopTime |
----------------------------
| Angela | 50 | 50 |
| Amanda | 234 | 50 |
| Max | 240 | 50 |
----------------------------
到目前为止,我尝试了以下操作,但它只显示了最佳时间,我希望整个选定表都可以使用
SELECT *, min(Time) AS TopTime
FROM (SELECT Name, min(Time) AS Time
FROM db_race
WHERE Map='test1'
GROUP BY Name
ORDER BY Time ASC) a
我想确保我不需要通过使用子查询来找到TopTime。 实际查询将很长,我的目标是不要执行两次。
大概是这样吗?
SELECT
Name,
min(Time) as Time,
(SELECT min(Time) FROM db_race WHERE Map='test1') as TopTime
FROM db_race
WHERE Map='test1'
GROUP BY Name
ORDER BY Time
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.