0
у меня есть две таблицы с ниже структурыВысокая TSQL производительность для извлечения данных
Person(ID, Name, ...)
Action(ID, FirstPersonId, SecondPersonId, Date)
Я хочу получить эти данные для каждого человека:
Количество действий, которые человек быть на второго человека из прошлого действие , что быть на первом лице
Текущий запрос
Select Result.Id ,
(Select Count(*)
From Action
Where SecondPersonId = Result.Id
AND Date > Result.LastAction)
From
(Select ID ,
(
Select Top 1 Date
From Action
Where Action.FirstPersonId = Person.Id
) as LastAction
From Person) As Result
этот запрос имеет плохую производительность, и мне нужен очень лучший.
Пожалуйста, расскажите нам немного о ваших таблицах ввода и о том, какой результат вы ожидаете. Кроме того, сколько строк имеют таблицы? –
Вы хотите «Топ 1 Дата», чтобы получить последнюю дату действия первого лица? –