[英]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.