SELECT * FROM ScoresTable WHERE Score =
(SELECT MAX(Score) FROM ScoresTable AS st WHERE st.Date = ScoresTable.Date)
Есть ли имя для описания с помощью инструкции SELECT в предложении WHERE?Это хорошая / плохая практика?
Будет ли это лучшей альтернативой?
SELECT ScoresTable.*
FROM ScoresTable INNER JOIN
(SELECT Date, MAX(Score) AS MaxScore
FROM ScoresTable GROUP BY Date) SubQuery
ON ScoresTable.Date = SubQuery.Date
AND ScoresTable.Score = SubQuery.MaxScore
Это гораздо менее элегантно, но, кажется, работает быстрее, чем моя предыдущая версия.Мне это не нравится, потому что оно не очень четко отображается в графическом интерфейсе (и это нужно понимать начинающим SQL).Я мог бы разделить его на два отдельных запроса, но тогда все стало бы беспорядочным ...
NB Мне нужно больше, чем просто дата и оценка (например, имя)