gpt4 book ai didi

mysql - 在新列中为所有行选择全局 min()

转载 作者:行者123 更新时间:2023-11-29 20:06:54 26 4
gpt4 key购买 nike

我有一个表 db_race

--------------------------
| Name | Time | Map |
--------------------------
| Max | 240 | test1 |
| Alvin | 600 | test2 |
| Amanda | 234 | test1 |
| Angela | 50 | test1 |
| Angela | 2000 | test1 |
--------------------------

我现在想在 map 上选择按最佳时间排序的一些行,如下所示

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

关于mysql - 在新列中为所有行选择全局 min(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40311044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com