Я использую хранимую процедуру SQL для извлечения данных из моей базы данных. Поскольку я использую несколько подзапросов, скорость запроса очень низкая, пожалуйста, предложите лучший способ переписать приведенный ниже запрос, чтобы избежать подзапроса.
Select Companyid,
companyname,
(select count(distinct Identifier.SID)
from CompaniesUsers
join Identifier on CompaniesUsers.UniqueId = Identifier.UniqueId
where Companies.CompanyId = CompaniesUsers.CompanyId
and CompaniesUsers.IsActive = 1
and Identifier.IsActive = 1 ) as CustomerCount,
(select count(distinct CompaniesUsers.UniqueId)
from CompaniesUsers
where Companies.CompanyId = CompaniesUsers.CompanyId
and CompaniesUsers.IsActive = 1
and CompaniesUsers.UniqueId != '-' )
- (Same query used in the CustomerCount) as AnonymousCustomerCount
from Companies where Companies.isactive = 1
Здесь я хочу повторно использовать запрос подсчета клиентов для AnonymousCustomerCount. Каков наилучший способ сделать это?