Как я могу избежать подзапроса для этого запроса (SQL server 2005)?
Select FirstName, MiddleName, LastName, MatchType, RunsScored From ( Select s.Id, a.FirstName, a.MiddleName, a.LastName, s.MatchType, s.RunsScored, Row_Number() Over(Partition By MatchType Order By RunsScored Desc) rn From PlayersCareerBatting s Join PlayersBioDataNew a On s.Id=a.Id ) x Where rn=1
вот мой код. для этого кода я получаю слишком медленную скорость запроса. поэтому я хочу ускорить запрос. для этого я собираюсь избежать подзапроса на этот счет. пожалуйста, помогите мне, как избежать подзапроса, чтобы выполнить запрос быстрее.
Что я уже пробовал:
Select a.firstname, a.middlename, s.matchtype, Max(s.Runsscored) from PlayersCareerBatting s Join PlayersBioDataNew a On s.Id=a.Id group by s.matchtype,a.firstname, a.middlename
я попробовал это сделать. но это показывает все строки, Я хочу только те строки, которые получили максимум в runsscored с их соответствующими именами.
Maciej Los
Является ли этот вопрос продолжением этот?
Giri Bkm
да, я думал, что подзапросы-это главная проблема для низкой скорости запросов. вот почему я перешел к тому, чтобы избегать подзапросов
ZurdoDev
Я не думаю, что ты сможешь.
itsmypassion
Вместо этого вы можете использовать CTE.
Rajesh Pandya
Вы можете использовать CTE, следующая ссылка будет полезна:
https://www.red-gate.com/simple-talk/sql/t-sql-programming/sql-server-2005-common-table-expressions/