我需要在我的數據庫中顯示最年輕的運動員。 MIN(Athlete.Age)運行良好,但顯然也需要名稱。當我添加名稱來選擇我得到約5個結果。我如何顯示MIN(年齡)和她的名字?SQL使用Min()
2
A
回答
0
select *
from
(
select Athlete.Age, Athlete.Name
from (((Country INNER JOIN Athlete ON Country.Country_Code = Athlete.Country_Code)
INNER JOIN Athlete_event
ON Athlete.Athlete_ID = Athlete_event.Athlete_ID2)
INNER JOIN Event
ON Event.Event_ID = Athlete_event.Event_ID2)
Where Athlete.Athlete_ID = Event.Award_Gold
order by Age
) v
where rownum=1;
0
添加您的查詢
HAVING MIN(Athlete.Age) = (SELECT MIN(AGE) from Athlete)
此行,您的最終查詢看起來像
SELECT MIN(Athlete.Age),
Athlete.NAME
FROM (((Country INNER JOIN Athlete
ON Country.Country_Code = Athlete.Country_Code
) INNER JOIN Athlete_event
ON Athlete.Athlete_ID = Athlete_event.Athlete_ID2
) INNER JOIN Event
ON Event.Event_ID = Athlete_event.Event_ID2
)
WHERE Athlete.Athlete_ID = Event.Award_Gold
GROUP BY Athlete.NAME
HAVING MIN(Athlete.Age) = (SELECT MIN(AGE) FROM Athlete)
4
你可能有5名運動員與同年齡。查詢將不知道你想要哪一個。
如果您在數據庫中有出生日期,請嘗試使用它。
存儲年齡通常不是一個好主意,因爲在一年內,他們都是錯的。
[edit2]請注意,人們仍有可能分享同一個生日。
0
如果您在查詢中使用GROUP BY
,您正在搜索每位運動員的最小年齡。
你應該嘗試一個子查詢。將它添加到where子句。例如:(未測試)
select Athlete.Age, Athlete.Name
from Athlete
AND Athlete.Age = (select MIN(Athlete.Age)
from (((Country INNER JOIN Athlete ON Country.Country_Code = Athlete.Country_Code)
INNER JOIN Athlete_event
ON Athlete.Athlete_ID = Athlete_event.Athlete_ID2)
INNER JOIN Event
ON Event.Event_ID = Athlete_event.Event_ID2)
Where Athlete.Athlete_ID = Event.Award_Gold);
相關問題
- 1. T-SQL:如何使用MIN
- 2. sql - 使用MIN功能
- 3. Sql count和min
- 4. SQL MIN()&GROUP BY
- 5. 使用MIN(左(@prefix,3))在SQL
- 6. SQL SELECT MIN()加入
- 7. SQL MIN(),MAX()和AVG
- 8. sql min()在哪裏
- 9. 使用min函數
- 10. 使用MIN更新
- 11. 錯誤使用MIN
- 12. 使用MIN內WHERE
- 13. 使用多個表,使用Min()的多個值SQL
- 14. SQL Server 2008:SELECT min(date)
- 15. SQL MIN DATE> = 2017-01
- 16. SQL中,Compged,Min和空白
- 17. SQL MIN()返回多個值?
- 18. SQL:加入LIKE和min()
- 19. 更新和MIN SQL查詢
- 20. MIN和MAX SQL函數
- 21. SQL MIN()奇怪的值
- 22. ORMLITE中的SQL MAX-MIN - ANDROID
- 23. 在SQL中選擇MIN()
- 24. SQL子查詢min()不起作用
- 25. 使用MIN和COUNT一起
- 26. 使用MIN和NULLIF正確
- 27. 使用MIN功能在LINQ
- 28. 在ARRAYFORMULA()裏面使用MIN()
- 29. 如何使用MIN()函數
- 30. 使用CAST()和MAX()/ MIN()
+1推薦使用出生日期而不是年齡 –